Я работаю над мыльным веб-сервисом, который нуждается в некоторой базовой аутентификации.
Поэтому идея состоит в том, чтобы просто потребовать, чтобы все методы веб-сервиса содержали параметр имени пользователя и пароля, а затем убедиться, что эти значения существуют в нашембаза данных пользователей:
public String[][] someWebserviceMethod(String username, String password) throws FailedLoginException {
// Verify that user with username and password exists
//do database stuff and return data
}
Это создает проблему на стороне клиента.После первоначального входа пользователя в приложение нам нужно сохранить имя пользователя и пароль в памяти в виде простого текста.Это приемлемо?Если нет, какой метод предпочтительнее?
Кроме того, мой веб-сервис будет размещен на https.Гарантирует ли это, что пароль надежно зашифрован, когда клиент отправляет запрос на мыло?
Изменить: Будет ли работать sessionID?Я никогда не реализовывал один без фреймворка или веб-сервера, делающего это для меня.Может быть что-то вроде этого:
- Клиент отправляет имя пользователя и пароль.
- Если клиент действителен, сервер возвращает случайную строку (sessionId).
- Сервер хранит sessionID и метку временив базе данных
- Клиент хранит sessionID в памяти, не хранит пароль
- Клиент запрашивает веб-метод с именем пользователя и sessionID
- Если пользователь с именем пользователя и sessionID существует, а отметка времени в пределахвремя ожидания, предоставить доступ и обновить отметку времени.В противном случае повторно войдите в систему.