dotnetopenauth - как сбросить логин на конце Google - PullRequest
1 голос
/ 13 августа 2010

У меня есть веб-сайт, который позволяет пользователям входить в систему со своей учетной записью Google, http://urlme.cc

Проблема: пользователь Bob входит в систему как bob@gmail.com, затем выходит из системы, а затемрешает, что он хочет войти в систему как bob-at-home@gmail.com, один из его альтернативных адресов Gmail, он не может этого сделать.Если он оставит флажок «запомнить меня» на странице входа в Google, он запомнит его.Это возможно?Я знаю, что пользователь может вручную отозвать ассоциацию на "https://www.google.com/accounts/IssuedAuthSubTokens",, но должен быть более простой способ, чтобы я, как разработчик, мог отозвать его для него.

Пожалуйста, дайте мне знать, если мне нужнок слову лучше!

1 Ответ

1 голос
/ 13 августа 2010

Флажок "Запомнить меня" имеет значение только тогда, когда пользователь вошел в Google.

при входе в другой аккаунт Google больше не будет аутентифицировать предыдущий аккаунт, а вместо этого будет использовать тот, в который он вошел.

По шагам:

  1. Пользователь входит в систему как bob@gmail.com в Google
  2. Пользователь нажимает кнопку «Войти в Google» на сайте
  3. Google запрашивает у пользователя разрешение на аутентификацию и спрашивает, следует ли запомнить это разрешение не у пользователя)
  4. Пользователь вошел в систему, но решает, что аутентификация с помощью этой учетной записи была плохой идеей
  5. Пользователь выходит из системы на сайте и в Google
  6. Пользователь входит в Google как bob-at-home@gmail.com
  7. Пользователь нажимает кнопку «Войти в Google» на сайте
  8. Поскольку теперь вошел другой пользователь, и он еще не разрешил аутентификацию, Google запрашивает разрешение, как на шаге 3.
  9. Пользователь разрешил авторизацию, поэтому теперь Google возвращает другой идентификатор, идентификатор для bob-at-home@gmail.com, и ни Google, ни сайт не знают, что эти две учетные записи связано каким-либо образом. Сайт видит двух отдельных пользователей, так же как и Google.

Кроме того, не стоит ограничивать количество пользователей одним провайдером. OpenID - это все о децентрализации - вы должны хотя бы разрешить ввод идентификатора вручную.

И снова: «помни меня» означает: «Не спрашивай у меня разрешения на отправку этих данных в следующий раз», а не «Помни, что я использую эту машину - это я» (это «помни меня» "при входе в Google).

И нет, нет способа ни автоматически отозвать разрешение пользователя, ни узнать, что он его запомнил, и я не вижу причин, по которым вы могли бы захотеть.

...