django – Python通过访问令牌进行社交认证验证失败

栏目: Python · 发布时间: 6年前

内容简介:代码日志版权声明:翻译自:http://stackoverflow.com/questions/26252633/python-social-auth-authentication-via-access-token-fails

我目前正在开发一个服务器后台,并使用Django(1.7),通过使用Python-social-auth来处理社交网络的身份验证.

我跟着 Tutorial 在这个网站上,描述一个简单的Webapp的过程.

这对谷歌和Twitter登录是非常有效的.

由于服务器应该只是一个REST-FULL后端,所以我决定在客户端获取访问令牌并将其发送到服务器.

服务器不会与其进行身份验证.这个过程应该是没有问题的,甚至在python-social-auth的文档中也是一个例子.

但是,如果我设置了一切,我会收到一个错误,说:“后端未找到404”.

这里是项目的一小部分:

settings.py:(我还包括API_KEY和SECRET)

AUTHENTICATION_BACKENDS = (
   #'social.backends.facebook.FacebookOAuth2',
   'social.backends.google.GoogleOAuth2',
   'social.backends.twitter.TwitterOAuth',
   'django.contrib.auth.backends.ModelBackend',
)

views.py(用于认证视图)

from django.contrib.auth import login

from social.apps.django_app.utils import psa

@psa('social:complete')
def register_by_access_token(request, backend):
    token = request.GET.get('access_token')
    user = request.backend.do_auth(request.GET.get('access_token'))
    if user:
        login(request, user)
        return 'OK'
    else:
        return 'ERROR'

这我从文档复制了海峡,只是改变了backend.do_auth来request.backend.do_auth.这似乎是文档中的错误.

urls.py:

...
url(r'^register-by-token/(?P<backend>[^/]+)/$', 'register_by_access_token')
...

也如文档中的建议.

我只是试图让这个工作只是为了google-oauth,因为有一个简单的js-lib给你访问令牌.

这也是非常好的,我发送一个请求

GET http://localhost:8000/register-by-token/google-oauth2/<access-token>/

如上所述,返回是没有找到404后端.

我做了一点调试,发现登录功能引发的错误不是后端的do_auth()函数.

因此,实际的认证过程是有效的.我也尝试使用随机生成的字符串作为令牌,并得到一个相应的错误,用户无法验证.

有趣的是,用户甚至拥有一个属性后端,它应该保存“social.backends.google.GoogleOAuth2”.

谢谢你,如果你留在我的长篇职位,我希望有人有一个想法可能是错的:).

期待你的答案.

在你的register_by_access_token视图中,你在GET参数中获得access_token

user = request.backend.do_auth(request.GET.get('access_token'))

你的defiend是:

url(r'^register-by-token/(?P<backend>[^/]+)/$', 'register_by_access_token')

所以你需要请求:

GET http://localhost:8000/register-by-token/google-oauth2/?access_token=<access_token>

而你在做:

GET http://localhost:8000/register-by-token/google-oauth2/<access-token>/

你正在传递access_token在url参数,这是错误的.

代码日志版权声明:

翻译自:http://stackoverflow.com/questions/26252633/python-social-auth-authentication-via-access-token-fails


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

RESTful Web Services Cookbook

RESTful Web Services Cookbook

Subbu Allamaraju / Yahoo Press / 2010-3-11 / USD 39.99

While the REST design philosophy has captured the imagination of web and enterprise developers alike, using this approach to develop real web services is no picnic. This cookbook includes more than 10......一起来看看 《RESTful Web Services Cookbook》 这本书的介绍吧!

CSS 压缩/解压工具
CSS 压缩/解压工具

在线压缩/解压 CSS 代码

在线进制转换器
在线进制转换器

各进制数互转换器

Base64 编码/解码
Base64 编码/解码

Base64 编码/解码