Проверка Google OAuth, если пользователь вышел из Google - PullRequest
1 голос
/ 11 марта 2019

После того, как пользователь вошел в систему с помощью Google OAuth - можно ли проверить, выйдет ли пользователь из Google из системы?

Сценарий:

  1. Пользователь вошел в систему Google
  2. Пользователь вошел в систему mysite.com, используя Google OAuth, а состояние входа сохраняется в сеансе в течение 1 года .
  3. Пользователь вышел из Google, но забыл выйти из mysite.com
  4. Через одну неделю кто-то украл ноутбук пользователя. Thief не сможет использовать Google, но сможет повторно использовать залогиненный пользовательский сеанс mysite.com

Интересно, как можно предотвратить такую ​​ситуацию?

Я не хочу накладывать это бремя на пользователя - выйдите из него с mysite.com и попросите войти снова каждый день.

Хотелось бы вместо этого использовать что-то автоматическое вроде:

  • Когда вы заходите в Google OAuth, вы получаете какой-то идентификатор
  • Каждый день вы проверяете, что исходный сеанс все еще активен, вызывая что-то вроде

google.com/api/is-original-session-still-active?id=ID

Ответы [ 2 ]

1 голос
/ 12 марта 2019

В частности, чтобы узнать о событиях безопасности учетной записи пользователя, которые могут повлиять на пользователей вашего приложения, если ваше приложение использует вход в Google, рассмотрите возможность регистрации приложения для получения событий для Cross Account Protection [1].

[1] https://developers.google.com/identity/risc

1 голос
/ 11 марта 2019

Примечание. Я подозреваю, что у вас неверная терминология. Я подозреваю, что вы используете Openid connect , а не OAuth2 для входа в систему.Однако я отвечу на этот вопрос на основе Oauth2, так как вы говорите, что вы используете.

Oauth2

Oauth2 используется для предоставления доступа приложения кданные пользователей.При использовании токена oauth2 вы действуете от имени пользователя.На самом деле при использовании токенов Oauth2 пользователь не взаимодействует.

Если пользователь дает согласие на доступ вашего приложения к своим данным, вы получите токен доступа и токен обновления.Токены доступа хороши в течение часа.Токены обновления являются долгоживущими и предоставят вам доступ к данным пользователей до тех пор, пока пользователь не удалит ваше согласие и вы будете использовать его как минимум каждые шесть месяцев.

Поскольку Oauth2 не взаимодействует с пользователем, невозможно использовать его, чтобы проверить, вошел ли пользователь в свою учетную запись.На самом деле нет Google API, который дал бы вам эту информацию.Это будет считаться IMO личной информацией пользователя, а не тем, что Google должен делиться с сторонними приложениями.

Предложения

Возможно, вы захотите рассмотреть некоторые изменения в вашем приложении..

  1. осуществлять выход из системы везде.Если пользователь меняет свой пароль, то все устройства, в которые он вошел, должны автоматически пройти повторную проверку подлинности.
  2. Ваши сеансы должны быть эффективны только неделю или две, и вы должны включить скольжение.
  3. Скажите своим пользователям, чтобы они отказались от согласия вашего приложения на их данные, это также заставит их заново войти в систему.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...