【发布时间】:2020-06-12 11:17:34
【问题描述】:
我正在为不同的服务实现 Oauth,并且我正在使用“OAuth2ConsumerBlueprint”(使用 flask-dance)。 我正在考虑 Flask-OAuth,但我认为我最终会遇到与 Flask-Dance 相同的问题。 我打算做的是:
用户继续“.mydomain.com”
例如用户点击通过FB登录
用户访问 social.mydomain.com(因此授权 URL 始终相同)
登录后的用户应该被带到“.mydomain.com”
看起来我找不到办法。这应该是可行的。我试图解析出不同的信息,例如:
打印(请求)
打印(request.referrer)
我什至使用过:@oauth_authorized.connect 打印所有信息,看看我是否可以收集一些额外的信息以重复使用
print(vars(request))
print(vars(blueprint))
print(vars(token))
print(session)
我还尝试在 GET 参数中添加一个“foo”变量,以查看是否可以从 social.mydomain.com 再次读取它,但我不能。不知道如何将用户重定向回原来的 .mydomain.com
关于如何在特定子域上完成身份验证(因此我只需要将一个子域列入白名单)然后将用户重定向到他自己的域,这里有任何建议吗?
这就是我设置一切的方式:
facebook = OAuth2ConsumerBlueprint(
"fb_social", __name__, url_prefix='/fb',
client_id=FB_CLIENT_ID,
client_secret=FB_SECRET,
scope='email',
base_url="https://graph.facebook.com/",
token_url="https://graph.facebook.com/oauth/access_token",
authorization_url="https://www.facebook.com/dialog/oauth",
redirect_to='fb_social.social_facebook',
)
非常感谢
【问题讨论】:
-
我通过在 get 参数中使用“next”并将其保存到用户会话中来解决它。用户登录后,我只需通过会话 url 将用户重定向到原始客户网站。
标签: flask flask-oauthlib flask-dance