首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >authorize_access_token上的Django authlib MismatchingStateError

authorize_access_token上的Django authlib MismatchingStateError
EN

Stack Overflow用户
提问于 2020-03-03 23:45:07
回答 1查看 720关注 0票数 0

我对django authlib客户端https://docs.authlib.org/en/latest/client/django.html有一些问题。在重定向url时,authorize_access_token raise MismatchingStateError()。

这是我的代码:

代码语言:javascript
复制
def login(request):
    # google = oauth.create_client('google')

    authservice = oauth.create_client('authservice')
    redirect_uri = 'http://localhost:8050/authorize'

    authservice.save_authorize_data(request)

    return authservice.authorize_redirect(request, redirect_uri)


def authorize(request):
    token = oauth.authservice.authorize_access_token(request)
    userinfo = oauth.authservice.parse_id_token(request, token)
    resp = oauth.authservice.userinfo(token=token)
    return JsonResponse(token, safe=False)

和堆栈跟踪:

代码语言:javascript
复制
Internal Server Error: /authorize/
app_1  | Traceback (most recent call last):
app_1  |   File "/usr/local/lib/python3.7/site-packages/django/core/handlers/exception.py", line 34, in inner
app_1  |     response = get_response(request)
app_1  |   File "/usr/local/lib/python3.7/site-packages/django/core/handlers/base.py", line 115, in _get_response
app_1  |     response = self.process_exception_by_middleware(e, request)
app_1  |   File "/usr/local/lib/python3.7/site-packages/django/core/handlers/base.py", line 113, in _get_response
app_1  |     response = wrapped_callback(request, *callback_args, **callback_kwargs)
app_1  |   File "/opt/project/access/views.py", line 141, in authorize
app_1  |     token = oauth.authservice.authorize_access_token(request)
app_1  |   File "/usr/local/lib/python3.7/site-packages/authlib/integrations/django_client/integration.py", line 66, in authorize_access_token
app_1  |     params = self.retrieve_access_token_params(request)
app_1  |   File "/usr/local/lib/python3.7/site-packages/authlib/integrations/base_client/base_app.py", line 144, in retrieve_access_token_params
app_1  |     params = self._retrieve_oauth2_access_token_params(request, params)
app_1  |   File "/usr/local/lib/python3.7/site-packages/authlib/integrations/base_client/base_app.py", line 126, in _retrieve_oauth2_access_token_params
app_1  |     raise MismatchingStateError()
app_1  | authlib.integrations.base_client.errors.MismatchingStateError: mismatching_state: CSRF Warning! State not equal in request and response.

如果有人对如何修复它有一个想法,那将是很棒的。

谢谢你们:)

EN

回答 1

Stack Overflow用户

发布于 2020-03-04 02:13:36

我认为错误可能是因为您应用程序中配置的url与'http://localhost:8050/authorize'不同

检查并验证它们是否相同。另请参见this

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60510831

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档