Я пытаюсь создать и приложение Android, требующее аутентификации пользователя (через веб-службу REST). Приложение имеет несколько действий и экранов, которые требуют, чтобы пользователь вошел в систему, когда пользователь может добавлять и редактировать сообщения на веб-сайте.Android Authentication
Я читал, что использование AndroidHttp Client в синглэнге «ConnectionManager» было бы лучшим способом сделать это. Однако, где бы я хотел хранить информацию о пользователях (имя пользователя, пароль), будет ли это в одиночном режиме? Должен ли я аутентифицироваться каждый раз, когда пользователь пытается изменить/добавить что-то?
Если у меня есть класс вроде этого:
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;
}
}
Это, кажется, имеет смысл, этот метод безопасен? И знаете ли вы какие-либо примеры того, как достичь этого? – kiwijus
Вам нужно будет использовать SSL для обеспечения безопасности, но это верно для любой службы. Я не знаю каких-либо документированных примеров, но это не сложно. – Kuffs
Да, я думал, что, наверное, все будет хорошо. Я просто немного посмотрел, и это кажется очень простым. Это просто вопрос добавления заголовка в приложение Android (HttpGet addheader), а затем проверка его на конце веб-службы вправо? Я ничего не пропустил? – kiwijus