1

ユーザーの認証を必要とするAndroidアプリを作成しようとしています(REST Webサービスを介して)。アプリには複数のアクティビティと画面があり、すべてユーザーがログインする必要があります。ログインすると、ユーザーはWebサイトの投稿を追加および編集できます。

「ConnectionManager」シングルトン内でAndroidHttpクライアントを使用することが、それを行うための最良の方法であることを読みました。ただし、ユーザーの詳細(ユーザー名、パスワード)はどこに保存しますか?これはシングルトンになりますか?ユーザーが何かを編集/追加しようとするたびに認証する必要がありますか?

私はこのようなクラスを持っている必要があります:

public class ConnectionManager {

    private static ConnectionManager instance = null;
    private AndroidHttpClient client;

    private ConnectionManager() {
        client = AndroidHttpClient.newInstance("Android-Connection-Manager");
    }

    public static ConnectionManager getInstance() {
        if( instance == null ) {
            instance = new ConnectionManager();
        }
        return instance;
    }

    public void authenticate(String username, String password) {
        //Check for authentication here
    }
}

ユーザーが何かをするたびに、以下のコードを呼び出します。

private static ConnectionManager conn = ConnectionManager.getInstance();
conn.authenticate();

また

ユーザーの詳細をシングルトンに保存する必要があります

public class ConnectionManager {

    private static ConnectionManager instance = null;
    private AndroidHttpClient client;

    private AppUser mLoggedInUser;
    private boolean mAuthenticated;

    private ConnectionManager() {
        client = AndroidHttpClient.newInstance("Android-Connection-Manager");
    }

    public static ConnectionManager getInstance() {
        if( instance == null ) {
            instance = new ConnectionManager();
        }
        return instance;
    }

    public void InitialiseUser(String username, String password) {
            //Do login checks here then return true if logged in
            mAuthenticated = true;
    }

    public boolean isAuthenticated() {
            return mAuthenticated;
    }
}
4

1 に答える 1

2

Restサービスを制御できる場合は、最初の接続でusername \ passwordを使用して認証し、認証が成功した場合にアプリに「トークン」を返すことができます。

その後、アプリはこのトークンを今後のすべてのリクエストのhttpヘッダーに追加し、サービスは続行する前にトークンが有効であることを確認できます。

それが私がそれをした方法であり、それはうまく機能します。

于 2012-04-14T15:17:30.500 に答える