ThinkPHP5实现JWT Token认证的方法和具体代码
来源:绵阳动力网络公司  时间:2022-10-17  阅读:10

近期在用ThinkPHP5进行网站建设项目开发时遇到了需要JWT Token认证,之前很少接触这方面的信息,经过网上搜索相关知识点和参考官方的文档内容,最终还是实现了JWT Token认证功能,现将整个过程记录下来,希望对大家有所参考。

1、composer先挂载阿里云镜像:

composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/

2、安装JWT扩展:

composer require lcobucci/jwt 3.3

3、在vendor目录中打开readme.md文件:

在vendor目录中打开readme.md文件

4、在extend目录中,自定义类进行JWT操作生成token:

在extend目录中,自定义类进行JWT操作生成token

5、操作Token.php实现生成token的方法,详细在readme.md中的Hmac位置:

注意:生效时间+60表示1分钟后生效,可以去掉加法运算,表示即时生效

操作Token.php实现生成token的方法,详细在readme.md中的Hmac位置

6、自行找控制器进行测试:

自行找控制器进行测试

7、最终会得到结果类似如下所示:

eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiIsImp0aSI6IjRmMWcyM2ExMmFhIn0.eyJpc3MiOiJmYW54aW56ZSIsImF1ZCI6InVzZXIiLCJqdGkiOiI0ZjFnMjNhMTJhYSIsImlhdCI6MTYxOTY2NjUwNywibmJmIjoxNjE5NjY2NTY3LCJleHAiOjE2MTk2NzAxMDcsInVpZCI6MTJ9.N6CkSWaNdTVk2ust9QzRa1wpY-ZCQTwp5nYPLYa_K-k

8、封装验证Token的方法,如果失败返回false,如果成功返回用户id:

封装验证Token的方法,如果失败返回false,如果成功返回用户id

9、案例:Token在实际代码中的应用:

注意:这里为了简单的做测试,使用的是DB操作,但是在实际代码中不建议使用DB,必须使用MVC进行开发。

(1)、登录的时候生成token:

登录的时候生成token

(2)、登录后可以拿到token,然后请求其他接口的时候就验证token是否正确,如果不正确,提示无效的token:

登录后可以拿到token,然后请求其他接口的时候就验证token是否正确,如果不正确,提示无效的token

(3)、由于登录后的每一个方法可能都需要验证token,所以我们把token封装到构造中进行验证【实例化类的时候自动调用构造,构造会在每一个要执行的方法前自动执行】

好了,以上内容就是关于在ThinkPHP5实现JWT Token认证的方法和具体代码内容,希望对大家有所帮助,喜欢的话记得收藏哦!

 
  • 电话咨询

  • 0816-2318288