Уникальная идентификация пользователей на сервере с помощью токена Google ID - PullRequest
0 голосов
/ 25 июня 2018

Я работаю над приложением 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, но я не знаю, насколько это хороший подход.

Я задокументировал много, прежде чем задавать эти вопросы, я прочиталмного о проверке подлинности и многих других вещах, но я не знаю, как все это соединить.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...