REST API 发送 JWT
Posted
技术标签:
【中文标题】REST API 发送 JWT【英文标题】:REST API sending JWT 【发布时间】:2017-12-28 14:31:01 【问题描述】:我正在开发一个小型 REST API,供浏览器和 android / ios / Windows Phone 应用程序使用。我正在使用 JWT 进行身份验证。由于在 API 中每个 url 都必须接收令牌,我一直在思考如何将令牌发送到 API,以便它也与移动应用程序兼容。
我只能想到两个选择: 第一:cookies,但我不知道android / iOS / Windows Phone应用程序是否可以像浏览器一样使用cookies。可以吗?
第二:使用 POST 在每个请求上发送令牌。我知道它会起作用,但我觉得它不专业,我相信还有其他方法可以让它变得更容易。
cookie 有用吗?有谁知道如何正确地做到这一点?
谢谢
【问题讨论】:
【参考方案1】:jwt 它是您的最佳选择 主要思想是使用您的凭证生成令牌,该凭证有 3 部分,第一部分和第二部分包含用户信息,第三部分由前 2 部分和服务器密钥生成
您可以看到这个示例由 laravel 和 angularjs 构建并带有完整描述 example here
更新: 最好是在请求头授权中发送它:Bearer cn389ncoiwuencr[jwt token] 它可以在 web 和 mobil 中工作
【讨论】:
我想我没有解释自己。我对 JWT 没有任何问题,我知道它们是如何工作的以及如何管理它们。我正在寻找在浏览器和手机应用程序中发送令牌的最佳方式,以便相同的后端脚本能够读取它,而无需根据请求的来源进行任何更改。 最好是在请求头中发送授权:Bearer cn389ncoiwuencr[jwt token] 它可以在网页和移动设备上使用【参考方案2】:Android 和 iOS 应用程序不使用 cookie。您需要将 JWT 存储在本地存储中,并将其包含在每个 POST 请求中。推荐的方式是使用Authorization
标头,但这不是强制性的
要在本地存储令牌,您可以将完美的 cookie 用于 Web 应用程序以及用于 Android 和 iOS 的首选项
【讨论】:
我将查找有关Authorization
标头的信息。谢谢以上是关于REST API 发送 JWT的主要内容,如果未能解决你的问题,请参考以下文章
如何忽略发送到 Django REST 框架的 CSRF 令牌?
使用 JWT 时出错,还想将 JWT 令牌发送到其他 API
Axios - 防止在外部 api 调用上发送 JWT 令牌