Я работаю над приложением Android, и мне нужно идентифицировать пользователей на сервере.Приложение предназначено для сбора некоторой информации для различных опросов / опросов, поэтому мне нужно однозначно идентифицировать пользователей на сервере, чтобы убедиться, что они отвечают только один раз на вопрос.Я потратил так много времени на этот проект, и я действительно хочу сделать его как можно лучше.Я прочитал много информации об этом, но я все еще беспокоюсь о некоторых проблемах безопасности.
Пожалуйста, помогите мне уточнить некоторые вещи:
на данный момент все приложениесделано, но я интегрировал Google Sign-In.Я запрашиваю письмо:
GoogleSignInOptions account = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
.requestIdToken(getString(R.string.server_client_id))
.requestEmail()
.build();
и отправляю его на сервер через Volley.На стороне сервера я обязываю пользователя отвечать один раз только на основе этого адреса электронной почты.Все работает отлично, но я не знаю, достаточно ли это безопасно, может, некоторые «плохие» пользователи могут отправить поддельный адрес электронной почты, чтобы они могли обмануть?
Я также пытался получитьGoogle id токен.Я отправляю его на сервер с помощью Volley, я проверяю idToken на сервере, я получаю оттуда электронную почту, а затем назначаю пользователю этот адрес электронной почты.Все работает нормально, но я не знаю, правильно ли я справляюсь, потому что у меня есть 3 действия: login_activity, main_activity, где пользователи могут выбирать доступные вопросы, и answer_activity, в котором я собираю информацию и отправляю ее на сервер.И я переношу idToken между этими действиями с Intents, но я не знаю, насколько это хороший подход.
Я задокументировал много, прежде чем задавать эти вопросы, я прочиталмного о проверке подлинности и многих других вещах, но я не знаю, как все это соединить.