Hyperf框架使用JWT进行用户认证
发布日期:2021-05-27 00:20:16 浏览次数:25 分类:精选文章

本文共 774 字,大约阅读时间需要 2 分钟。

配置

在上一篇文章中,我们已经成功安装了phper666/jwt-auth组件,并完成了相关配置。如果需要更改默认设置,可以在.env文件中添加相应的配置参数,例如为了更改默认的密钥,只需在.env文件中添加JWT_SECRET = your secret即可。

在这个项目中,我们将使用默认配置,这样可以简化部署和测试过程。配置文件路径为config/autoload/jwt.php,内部已经详细说明了相关配置方式。

自定义异常处理

我们需要添加对TokenValidException的自定义异常处理,返回带401错误的JSON响应。为了实现这一点,可以按照以下步骤操作:

在http下注册自定义的异常处理

自定义中间件

添加新的中间件,实现以下功能:

对所有jwt验证失败的情况,抛出TokenValidException。这样可以让我们自定义的异常处理类来处理这种异常,从而实现raquo返回带401错误的JSON响应。

该中间件的作用是,在 jwt验证通过后,将当前登录用户注入到请求对象中。这样,在使用该中间件的控制器后,只需调用request->user即可获得当前登录用户信息。

关于中间件的使用,可以参考官方文档进行详细了解。

认证功能实现

完善token的基本操作功能,包括:

获取token:通过username和password进行认证,返回相应的token和refreshToken。

refresh token:实现token的刷新功能,关联 гр角度将old token置为无效状态。

logout:在实际实现中,退出登录只需将token加入黑名单即可。

路由配置完成后,可以通过Postman等工具进行测试。需要注意的是,对需要认证的路由需要在请求头中添加Bearer Token。

《PHP微服务练兵》系列索引:

上一篇:Hyperf框架创建json-rpc服务
下一篇:使用Docker创建Hyperf项目

发表评论

最新留言

逛到本站,mark一下
[***.202.152.39]2025年05月14日 16时30分33秒