Ответ 1
Вы контролируете веб-сервис? Если нет, вам нужно будет использовать любой механизм проверки подлинности, предоставляемый веб-службой.
Если вы пишете веб-сервис самостоятельно, у вас есть много вариантов.
Проще всего просто отправить имя пользователя и пароль пользователя через SSL с каждым запросом в качестве заголовка HTTP Authorization:
. Недостатком здесь является то, что вам нужно сохранить имя пользователя и пароль, хранящиеся на устройстве. Это говорит о том, что из-за того, как работает система разрешений для Android, очень мало опасности того, что злоумышленник украл учетные данные у устройства, если пользователь не включил доступ root.
Если вы все еще хотите избежать сохранения пароля в виде обычного текста, вы можете отправить имя пользователя/пароль один раз (опять же, используя SSL), вернуть сервер зашифрованный токен авторизации, а затем отправить этот токен вместо имени пользователя/пароль. Для примера см. Google ClientLogin. Злоумышленник все равно может украсть токен, если у них есть физический доступ к устройству, но, по крайней мере, злоумышленник не может использовать его для доступа к другим сайтам, использующим один и тот же пароль.
Там также есть другие варианты, например, использовать вызов/ответ, чтобы сервер никогда не видел пароль пользователя, используя OAuth для предоставления общего API авторизации и т.д. Все зависит от ваших конкретных требований.