标头中的 OAuth2.0 访问令牌

Posted

技术标签:

【中文标题】标头中的 OAuth2.0 访问令牌【英文标题】:OAuth2.0 access token in header 【发布时间】:2016-11-23 21:16:16 【问题描述】:

我是一名学生,从事 php laravel 项目以使用 OAuth2.0 保护 API。 当我将访问令牌放在我的 URL 中时,我正在使用 Postman 测试我的 API:

URL/?access_token=... 一切正常。

现在想用Header来传递access_token,我试过了:

Key: access_token with Value:(token)

Key: Authorization with Value:(token)

Key:带值的授权:(Bearer + the token)

这些似乎都不起作用。有谁知道我做错了什么或我错过了什么?当我搜索正确答案时,我发现 Key: Authorization with Value:(Bearer + the token) 需要正常工作。

提前谢谢!

【问题讨论】:

【参考方案1】:

我在请求标头中使用访问令牌:

密钥:授权

值:承载 AccessToken

还取决于您要返回的令牌类型。 获取访问令牌时查找 token_type 键。 在我的情况下,它是“Bearer”,所以将它与访问令牌一起使用。

【讨论】:

感谢您的回复!当我这样尝试时,我收到错误:“消息”:“请求缺少必需的参数,包含无效的参数值,包含不止一次的参数,或者格式错误。检查“访问令牌”范围。”我是否需要在代码中加入某些东西才能接受标头? 我发现了问题,不得不补充: RewriteCond %HTTP:Authorization 。 RewriteRule .* - [E=HTTP_AUTHORIZATION:%HTTP:Authorization] in .access【参考方案2】:

其实很简单。

您创建一个授权密钥,该密钥的值是令牌类型空间和实际令牌。如果你有不记名,那么它是“不记名令牌值”。我在我的一篇文章中详细介绍了这一点,我也在使用 Postman。

这里是文章:https://eidand.com/2015/03/28/authorization-system-with-owin-web-api-json-web-tokens/

转到第 2 节,这是处理资源服务器的一节。您将在那里看到 Postman 屏幕截图,其中包含有关如何设置您需要的所有内容的示例。

【讨论】:

感谢您的回复!当我这样尝试时,我收到错误消息:“消息”:“请求缺少必需的参数,包含无效的参数值,包含不止一次的参数,或者格式错误。检查“访问令牌”范围。”我是否需要在代码中加入某些东西才能接受标头? 我发现了问题,不得不补充: RewriteCond %HTTP:Authorization 。 RewriteRule .* - [E=HTTP_AUTHORIZATION:%HTTP:Authorization] in .access

以上是关于标头中的 OAuth2.0 访问令牌的主要内容,如果未能解决你的问题,请参考以下文章

OAUTH2.0 不记名令牌不工作

Python 中的链接 API 错误 - “Empty oauth2 access token”即使给出了访问令牌

OAuth2.0 令牌奇怪行为(Invalid Credentials 401)

如何使用 Oauth2.0 解码不透明的访问令牌

无法在跨客户端谷歌 oauth2.0 中交换访问令牌和刷新令牌的授权码

oAuth2.0:为啥需要“授权码”,然后才需要令牌?