使用 Flask-OAuthlib,我如何强制 Facebook 要求重新验证帐户?
Using Flask-OAuthlib, how do I force Facebook to ask for account on reauthentication?
我正在通过 Google 和 Facebook 使用 Flask-OAuthlib 包实现 OAuth 2 提供商的身份验证。
对于 Google,我使用的是:
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",
)
可以使用更完整的示例 here。
使用 Google 提供商时,我可以成功登录,一旦我注销,当我尝试再次登录时,我被重定向到显示帐户列表的 Google 页面让我选一个。
使用 Facebook 提供商时,我可以成功登录,但是一旦我注销,当我再次登录时,Facebook 不再询问任何内容,只是自动使用之前使用的帐户登录。
我如何强制 Facebook 重新验证,即每次向用户显示 Facebook 页面,这使得 select 给定帐户成为可能?
找到了。
行:
request_token_params={"scope": "email"},
应替换为:
request_token_params={"scope": "email", "auth_type": "reauthenticate"},
To re-authenticate, you can use these same steps with additional parameters to force it:
[...]
reauthenticate
- asks the person to re-authenticate unconditionally
我正在通过 Google 和 Facebook 使用 Flask-OAuthlib 包实现 OAuth 2 提供商的身份验证。
对于 Google,我使用的是:
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",
)
可以使用更完整的示例 here。
使用 Google 提供商时,我可以成功登录,一旦我注销,当我尝试再次登录时,我被重定向到显示帐户列表的 Google 页面让我选一个。
使用 Facebook 提供商时,我可以成功登录,但是一旦我注销,当我再次登录时,Facebook 不再询问任何内容,只是自动使用之前使用的帐户登录。
我如何强制 Facebook 重新验证,即每次向用户显示 Facebook 页面,这使得 select 给定帐户成为可能?
找到了。
行:
request_token_params={"scope": "email"},
应替换为:
request_token_params={"scope": "email", "auth_type": "reauthenticate"},
To re-authenticate, you can use these same steps with additional parameters to force it:
[...]
reauthenticate
- asks the person to re-authenticate unconditionally