首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从django-oauth工具包令牌获得当前登录用户?

如何从django-oauth工具包令牌获得当前登录用户?
EN

Stack Overflow用户
提问于 2016-10-06 22:41:48
回答 1查看 4.7K关注 0票数 4

我正在使用Django和django-oauth工具包为Auth0构建一个通用的Auth0。我计划使用Django服务器对几个不同服务的用户进行身份验证,使用Auth0作为中介。

我有一个在应用程序经过身份验证后调用的视图,我需要这个视图来返回当前登录用户的详细信息。

urls.py:

代码语言:javascript
复制
# Return current logged in user
(r'^user/current/?$',
 'my_app.views.current_user.get_user',
 {},
 'current_user'),

视图/current_user.py:

代码语言:javascript
复制
import json
from django.http import HttpResponse
from oauth2_provider.decorators import protected_resource


@protected_resource()
def get_user(request):
    user = request.user
    return HttpResponse(
        json.dumps({
            'username': user.username, 
            'email': user.email}),
        content_type='application/json')

request.user正在返回AnonymousUser,而不是令牌所属的用户。

如何访问与Django -oauth-工具箱发出的令牌相关联的django用户?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-10-07 15:03:39

结果是,如果加载正确的中间件和身份验证后端,比如在文件里写着,request.user将返回正确的用户。

代码语言:javascript
复制
AUTHENTICATION_BACKENDS = (
'oauth2_provider.backends.OAuth2Backend',
# Uncomment following if you want to access the admin
#'django.contrib.auth.backends.ModelBackend'
'...',
)

MIDDLEWARE_CLASSES = (
    '...',
    # If you use SessionAuthenticationMiddleware, be sure it appears before OAuth2TokenMiddleware.
    # SessionAuthenticationMiddleware is NOT required for using django-oauth-toolkit.
    'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
    'oauth2_provider.middleware.OAuth2TokenMiddleware',
    '...',
)
票数 13
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39906719

复制
相关文章

相似问题

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