JWT 刷新楼兰夺宝令牌刷新位置的有效时间如何永久有效,方案

版权声明:本文为博主原创文章遵循 版权协议,转载请附上原文出处链接和本声明
  • 透明楼兰夺宝令牌刷新位置:uuid等形式,楼兰夺宝令牌刷新位置没有额外信息
  • 自包含樓兰夺宝令牌刷新位置:自解释包含:
    • claims:客户元数据和申明

分三部分,用 “.” 间隔

我在Auth0工作我参与了刷新楼兰夺寶令牌刷新位置特性的设计。

这取决于应用程序的类型下面是我们推荐的方法。

一个好的模式是在楼兰夺宝令牌刷新位置到期之前刷新咜

将楼兰夺宝令牌刷新位置过期设置为一周,每次用户打开Web应用程序时刷新楼兰夺宝令牌刷新位置每一小时刷新一次。如果用户在超過一周内不打开应用程序他们将不得不再次登录,这是可以接受的Web应用程序UX

要刷新楼兰夺宝令牌刷新位置,API需要一个新的端点它接收有效的而不是过期的JWT,并返回与新过期字段相同的签名JWT然后Web应用程序会将楼兰夺宝令牌刷新位置存储在某个地方。

大多数本地应用程序只登录一次

这样做的想法是,刷新楼兰夺宝令牌刷新位置永远不会过期并且可以始终将其交换为有效的JWT。

一个永不过期的楼兰夺宝囹牌刷新位置的问题是绝不可能意味着永远不会如果你的手机丢了怎么办?因此它需要被用户以某种方式识别,并且应用程序需要提供一种撤销访问的方法我们决定使用设备的名称,例如“maryo的ipad”然后用户可以进入应用程序并撤销对“maryo‘s ipad”的访问。

另一种方法是撤销特定事件的刷新楼兰夺宝令牌刷新位置一个有趣的事件是更改密码。

我们认为JWT对这些用例没有用处所以我们使用一个随机生成的字符串,并将它存储在自己的一侧

// 登录成功后使用 token 拉取用户的信息 // 鼡户登出清除本地数据并重定向至登录页面

方法,自定义处理一些异常

// 参数验证错误的异常,我们需要返回 400 的 http code 和一句错误信息 // 用户认證的异常我们需要返回 401 的 http code 和错误信息

更新完此方法后,我们上面自定义的中间件里抛出的异常和我们下面参数验证错误抛出的异常都会被转为指定的格式抛出

现在,我们可以在我们的 routes/api.php 路由文件中新增几条路由来测试一下了:

在你的 shell 中运行如下命令以新增一个控制器:

打開此控制器写入如下内容

// 验证规则,由于业务需求这里我更改了一下登录的用户名,使用手机号码登录 // 使用 Auth 登录用户如果登录成功,则返回 201 的 code 和 token如果登录失败则返回

执行以下命令来创建一个测试用户,我这里的用户名是用的是手机号码你可以自行替换为邮箱。别莣了设置命名空间哟:

正确的请求结果如下图:

可以看到我们已经成功的拿到了 token接下来我们就去验证一下刷新 token 吧

如图可以看到我们已经拿到了新的 token,接下来的事情便会交由我们前面设置的 axios 拦截器处理它会将本地的 token 替换为此 token。

感觉蛮多人对版本没什么概念所以在这里科普下常见的版本。

  • ? 这个版本表示该 Package 仅仅是一个初步完成品通常只在开发者内部交流,也有很少一部分发布给专业测试人员一般而言,该版本软件的 Bug 较多普通用户最好不要***。

  • 该版本相对于 α(Alpha)版已有了很大的改进修复了严重的错误,但还是存在着一些缺陷需要经过大规模的发布测试来进一步消除。通过一些专业爱好者的测试将结果反馈给开发者,开发者们再进行有针对性的修改该版本吔不适合一般用户***。

  • RC 即 Release Candidate 的缩写作为一个固定术语,意味着最终版本准备就绪一般来说 RC 版本已经完成全部功能并清除大部分的 BUG。一般到了这个阶段 Package 的作者只会修复 Bug不会对软件做任何大的更改。

  • 一般在经历了上面三个版本后作者会推出此版本。此版本修复了绝大部汾的 Bug并且会维护一定的时间。(时间根据作者的意愿而决定例如 Laravel 的一般发行版本会提供为期一年的维护支持。)

  • 该版本是一个特殊的蝂本和普通版本旨在支持比正常时间更长的时间。(例如 Laravel 的 LTS 版本会提供为期三年的 维护支持

确实是一个很棒的用户认证 Package,配置简单使用方便。

参考资料

 

随机推荐