Django集成oauth2实现第三方授权登录

       最近在项目中需要用到oauth2来进行第三方的授权服务,在网上了解到django-oauth-toolkit已经集成了oauth2方法,将自己心得记录下来.

        首先要学习什么是oauth2,阮老师的介绍应该算是很详细了,网址为:理解oauth2.

        我用到的是oauth2中的密码模式 resource owner password credentials来进行访问授权的,与授权码模式有所不同,不过大致原理相似,可以自行尝试.

============================================================================

      用oauth中的password方法来获取令牌访问整体流程


(A)用户向客户端提供用户名和密码。

(B)客户端将用户名和密码发给认证服务器,向后者请求令牌。

(C)认证服务器确认无误后,向客户端提供访问令牌。

在django-oauth-toolkit中获取令牌方法如下:
curl -X POST -d "grant_type=password&username=<user_name>&password=<password>" -u"<client_id>:<client_secret>" http://localhost:8000/o/token/

获取到token等信息,信息内容如下:
{
    "access_token": "<your_access_token>", #获得的令牌
    "token_type": "Bearer", #表示令牌类型,大小写不敏感,可以是bearer类型或mac类型
    "expires_in": 36000, #过期时间
    "refresh_token": "<your_refresh_token>", #刷新令牌,用来获取下一次的访问令牌,
    "scope": "read write groups" #表示权限范围,可选,设置时可以直接在上面获取token的参数中加入scope即可
}

即可用token进行访问:
curl -H "Authorization: Bearer <your_access_token>" http://localhost:8000/api/

接下来用ajax以及跨域的cors方法来进行前端处理

===============================================
  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值