私は、(REST Webサービスを通じて)ユーザーを認証する必要があるAndroidアプリを作成しようとしています。このアプリには、ユーザーがログインする必要がある複数のアクティビティと画面があり、ユーザーがログインしたときにウェブサイト上の投稿を追加および編集することができます。Android認証
「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();
OR
は、私は、ユーザーを保存する必要がありますシングルトンの詳細
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;
}
}
これは意味があるようですが、この方法は安全ですか?そして、これを達成する方法の例を知っていますか? – kiwijus
セキュアにするにはSSLを使用する必要がありますが、それはすべてのサービスにとって真です。文書化された例はわかりませんが、難しくありません。 – Kuffs
ええ、おそらくそれは大丈夫だろうと思った。私はちょっと見ただけでとてもシンプルに思えます。アンドロイドアプリ(HttpGet addheader)にヘッダーを追加して、Webサービスの終了時にそれを確認するだけです。私は何かを逃していませんか? – kiwijus