我正在使用Flask-OAuthlib包通过 Google 和 Facebook 实现对 OAuth 2 提供者的身份验证。
对于谷歌,我正在使用这个:
google = oauth.remote_app(
"google",
consumer_key=client_id,
consumer_secret=client_secret,
request_token_params={"scope": "email"},
base_url="https://www.googleapis.com/oauth2/v1/",
request_token_url=None,
access_token_method="POST",
access_token_url="https://accounts.google.com/o/oauth2/token",
authorize_url="https://accounts.google.com/o/oauth2/auth",
)
对于 Facebook,代码类似:
facebook = oauth.remote_app(
"facebook",
consumer_key=client_id,
consumer_secret=client_secret,
request_token_params={"scope": "email"},
base_url="https://graph.facebook.com/",
request_token_url=None,
access_token_method="GET",
access_token_url="/oauth/access_token",
authorize_url="https://www.facebook.com/dialog/oauth",
)
此处提供了更完整的示例。
使用 Google 提供商时,我可以成功登录,一旦我注销,当我再次尝试登录时,我会被重定向到显示帐户列表的 Google 页面并让我选择一个。
使用 Facebook 提供商时,我可以成功登录,但是一旦我注销,当我再次登录时,Facebook 不再询问任何内容,而是使用以前使用的帐户自动登录我。
我如何强制 Facebook 重新进行身份验证,即每次向用户显示 Facebook 页面,从而可以选择给定的帐户?