laravel如何使用jwt?

项目中想使用jwt,但是因为第一次使用jwt所以不知道如何在laravel中应用,有谁知道吗?问题大概有几个:
1、jwt token是注册的时候生成,登录的时候验证?还是注册不用生成,只在登录的时候生成?
2、jwt token保存在哪?session里面?

你们有谁用过,能不能把代码发给我如github开源的,我想参考一下如何做

阅读 4.9k
2 个回答

第一个问题:

如果你注册完成之后,希望用户保持登录状态,则在注册的时候一起生成即可。

如果注册完成了,希望用户手动登录,则只在登陆的时候即可。

JWT是有时效性的,所以需要对时间进行判断,发现保存超时的时候,需要重新请求一个token

第二个问题:

一般只有客户端和服务端分离的项目才会使用token验证策略吧(个人觉得),比如APP的API、或者提供给其他平台使用的API。

客户端可能是:APP、其他web平台

客户端是需要保存jwt的,在登陆成功的时候(假设登陆成功服务端给token),客户端保存服务端返回的token,同时token中可能有发放时间和token串,客户端进行本地保存(比如APP的本地保存、其他web平台的session存储等),当设计token的请求的时,jwt可以放在http请求的Authorization字段中,服务端通过拿到该字段判断时效性和有效性。

服务端不需要保存,只需要进行规则验证即可。

第三个问题:如何在框架中使用jwt

如果框架可以使用composer包的话,选择性很多。

如果自己来写的话,可以选择:https://github.com/lcobucci/jwt ,很实用

我有搞过一个jquery发送ajax请求测试jwt的东西,但是后面就搁置了,你也可以玩玩:

https://github.com/postbird/j...

上面的玩具主要作用:

  • jquery请求token,后台回应token
  • jquery发送带token的请求,后台验证

使用的vendor是上面github的那个

哪个包不重要,因为基本思路都一样,上面的那个文档还不错,自己来写的话可控性比较高。

文档地址:https://github.com/lcobucci/j...

laravel5.5好像不需要再使用JWT了,自带JWT看文档。
API

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进