私は認証方法に取り組んでおり、「username」と「pass」という名前の2つのテキストフィールドがあり、ユーザーがユーザー名とパスワードを入力したときにその情報がテキストファイルに保存されるようにします。したがって、再度ログインすると、そのテキストファイルからユーザー名とパスワードを読み取ってログインします。これを行うにはどうすればよいですか。ありがとう
2 に答える
(AIRのFileクラスを使用して)テキストファイルに保存することは可能ですが、これは実際には優れたアプローチではありません。代わりに、SharedObjectクラスをチェックアウトする必要があります
簡単な例:
var sharedObject:SharedObject = SharedObject.getLocal("userInfo"); //this will look for a shared object with the id userInfo and create a new one if it doesn't exist
sharedObjectのハンドルを取得したら
sharedObject.data.userName = "Some username";
sharedObject.data.password= "Some password"; //it's really not a good idea to save a password like this
sharedObject.flush(); //saves everything out
コードの他の場所でデータを取り戻すために
var sharedObject:SharedObject = SharedObject.getLocal("userInfo");
trace(sharedObject.data.userName);
trace(sharedObject.data.password);
このオブジェクトは、ユーザーのコンピューターにローカルに保存されます。これはブラウザのCookieと非常によく似ています。
このオブジェクトのパスワードをプレーンテキストで保存することはお勧めできません。より良い計画は、サーバー上のログイン情報を検証し、このオブジェクトにある種のセッションIDを格納することです。
擬似コード:
function validateLogin(){
var sessionID = server->checkLogin(username, password); //returns a string if authed, nothing if not
if(sessionID){
sharedObject->sessionID = sessionID;
} else {
//bad login
}
}
もっと読む:
http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/net/SharedObject.html
http://www.republicofcode.com/tutorials/flash/as3sharedobject/
理想的には、フラッシュを使用してファイルを書き込むことはできません(AIRアプリケーションでない限り)。フラッシュはブラウザで実行されることになっているため、システムリソース(ファイルシステムと同様)へのアクセスを許可することはセキュリティ上の脅威です。ただし、AIRはFlashがデスクトップアプリケーションとして動作する技術であり、そのような状態でファイルを書き込むことができます。
共有オブジェクトは、フラッシュがブラウザー環境に一時データを保存できるアプローチですが、キャッシュをクリアしてブラウザーファイルを削除すると、フラッシュもフラッシュされると思います。