以目前浅薄的理解,jwt就是一种加密token的手段,这个token也只有自己能解开,如果客户端以cookie存这个token,可能会存在cookie被窃取的情况。
另外,jwt这中加密方式因为有过期时间的参与(当前登陆时间+延迟时长),所以每次请求zull都要判断当前时间是否大于你的设置(这里可以造成多用户同一个账户同时登陆),如果大于了,解密出来的东西就和预期不符,就要重新登陆。所以有刷新token的机制存在,怎么刷?猜测就是客户端在token将死之前重新获取token呗(反正是无状态的,多发的。)。当然,如果你遇到只能一个账号单一在线的需要,刷token的方式我觉得是不可行的。
通过jwt我很快想通很多问题,大概都是隐约的猜测。比如单点登陆,web登陆了,手机也要登陆。刷验证码呗,其实就是请求了一个连接,这个连接推送消息给鉴权中心,发现已经登陆了,ok,推送给手机一个token,并告诉它,ok,你登陆吧。
---------
在做jwt时,因为考虑到复用性,把登陆单独提出来。登陆和zull鉴权就是单独的模块,但是他们都公用jwt工具类和user实体对象啊。抽象到common里。
怎么调取呢?mavne的pom里加上对common的引用就可以了。这里就想到了mavne可能把common打包成jar给登陆模块和鉴权模块引用了。懒得查的那么细致了。猜测了一下就打住了。
--------
springcloud的熔断php能不能实现呢?
我感觉行,比如做个网关,外部请求网关,网关调用内网接口,调用时要判断下超时时间。
springcloud的鉴权中心php能不能实现呢?
我感觉也行,jwt又不是限制在单一语言的标准,它适用与多种语言。
。。。。
--------
总感觉jwt比较重要,比如你做好一个jwt的鉴权中心当作网关做转发,那么另外一个项目就专心做业务好了。前面一个门神,后面一顿业务增删改查。。。
https://gitee.com/fleam/jwt