我有“代码授予流”登录,authlib flask集成运行良好:
redirect_uri = url_for('authorize', _external=True)
return oauth.myOauth2.authorize_redirect(redirect_uri)
出于某种原因,我决定尝试使重定向更加可见。向用户显示一下我的应用程序,然后再重定向到一些人可能不太熟悉的登录页面
现在这种作品:
redirect_uri = url_for('authorize', _external=True)
aurl = oauth.myOauth2.create_authorization_url(redirect_uri)
# what to do with aurl['state']?
return render_template('redirect.html', delay=2,
redirect_notice='Redirecting to login',
redirect_url=aurl['url'])
然而,当我在登录后被重定向回“authorize”时,我得到了authlib.integrations.base_client.errors.MismatchingStateError: mismatching_state: CSRF Warning! State not equal in request and response.
,我认为这是因为我没有保存aurl['state']
但我怎么能做到呢?我很难弄清楚授权重定向是如何做到的。
也许有更好的办法?感谢您的帮助
有两种方法可以完成工作:
.authorize_redirect
提取url:.save_authorize_data
保存CSRF和其他数据:你可以从:https://github.com/lepture/authlib/blob/master/authlib/integrations/flask_client/remote_app.py#L51学习
相关问题 更多 >
编程相关推荐