OAuth /oauth/token 401
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了OAuth /oauth/token 401相关的知识,希望对你有一定的参考价值。
参考技术A 最近在学习通过OAuth搭建统一授权认证的服务甚是困扰,在通过 /oauth/authorize 获取授权码的时候一切顺利,获取token:然而总是报以下错误:
网上搜了解决方案,都是说 client_id 和 client_secret 两个参数没有给(没给这两个参数确实会报未授权),但是我的问题不是该原因导致的!
但是我们能从这个思路发现一些问题,会不会因为授权认证时确实没有给到参数。于是我在程序中写了一个过滤器,查看在进入授权认证之前查看请求的参数,发现确实没有参数
相信不用多说了,POST请求发送数据的方式有多种,这种以 application/json 请求体这种方式 /oauth/token 是拿不到数据的
可以通过这种方式
OAuth2.0 授权方式及步骤梳理总结
OAuth 2.0授权协议使第三方应用程序可以通过协调资源所有者和HTTP服务之间的批准交互,或者通过允许第三方应用程序代表资源所有者来获得对HTTP服务的有限访问权,或者代表资源所有者。 代表自己获取访问权限。通常的授权方式分为以下四种:
一、Authorization_Code_Grant [授权码方式] (最完整方式,针对用户的授权) 【常用】
1、发起申请授权 | 2、用户确认授权 | 3、申请Token | 4、过期取新Token | 5、取OpenID |
通过授权链接 > 跳转认证页面 | 用户登录 > 返回授权码 | 通过授权码申请Token > 返回Token(附带refresh_token) | 依据refresh_token 取新Token | 透过Token取OpenID |
参考流程图如下:(图片来源:draft-ietf-oauth-v2-31 4.1 )
二、Implicit_Grant [授权码缺省方式] (可纯前端方式,针对用户的授权) 【常用】
1、发起申请授权 | 2、用户确认授权 | 4、过期取新Token | 5、取OpenID |
通过授权链接 > 跳转认证页面 | 用户登录 > 返回Token(附带refresh_token) | 依据refresh_token 取新Token | 透过Token取OpenID |
参考流程图如下:(图片来源:draft-ietf-oauth-v2-31 4.2 )
三、Client_Credentials [平台凭证方式] (可纯后端方式,针对平台的授权,多用户共享) 【少见】
1、发起申请 | 4、过期取新凭证 |
平台发起申请 > 返回给平台凭证 | 凭证过期 取新凭证 |
参考流程图如下:(图片来源:draft-ietf-oauth-v2-31 4.4 )
四、Password_Credentials [密码凭证方式] (充分信任的双方) 【特殊场景】
适用于双方有充分信任关系的情况,例如其操作系统或高特权的应用程序。授权服务器在启用此种授予类型时应当注意,只有在其它授权方式不可能时,再考虑此种授权类型。
首先,用户在平台登录页输入登录凭证,平台依据用户输入的登录凭证信息(通常为账号密码)向授权服务器发起Token申请。授权服务器Response Token。它还用于通过将存储的凭据转换为访问令牌,使用HTTP Basic或Digest身份验证等直接身份验证方案将现有客户端迁移到OAuth。
1、平台登录 | 2、认证授权 | 4、过期取新Token |
用户登录 > 发起申请 | 认证并返回Token(附带refresh_token) | 依据refresh_token 取新Token |
参考流程图如下:(图片来源:draft-ietf-oauth-v2-31 4.3 )
有误必究,欢迎指出,持续更新,万分感谢,共同学习。
以上是关于OAuth /oauth/token 401的主要内容,如果未能解决你的问题,请参考以下文章