上面一节说了公司为了在一个应用中使用多个应用使用了auth服务。其实这里还有一直方案。
最终的方案:所有的应用都去auth服务里面注册,注册后,可以设置token(每个服务都有自己的token),比如A应用注册了,设置A应用_token,同时根据A应用推算出那些应用需要授权,然后给授权 ,B应用C应用是嵌入在A应用里面的会自动权限,然后当B应用C应用登录的时候会去调auth的验证是否授权接口,如果授权了就自动生成各自的token,如果没有授权就调auth授权接口,然后生成各自的token。网关配置各自服务的拦截器验证各自的token,目前思路是这样的。
这里说一下为啥要用各自的token,是因为当初用的统一token,各个应用登录后都会生成新的token,导致账号会互相顶掉,所以就改成了各自token。
有人说了登录前验证下token是否登录过不就可以了吗?这样确实可以解决这个问题,但是就有会有一个新问题,就是token有效期的问题,因为用了JWT,JWT里面有有效期,如果用同一个token那么有效期就不会重置(比如A应用登录了有了token,B应用不用登录直接拿token用,这样token的有效期就不会更新,导致它会失效)
又有人说了,那可以失效了重新让用户登录呀,哎这也是一种方案,但是公司的大哥还是想用各自的token。
其实两种方案都可以,看领导想用那种就行,只要思路是正确的就可以了。
文章仅供参考哈。
统一授权服务(1)地址:统一授权服务_ghc_2018的博客-CSDN博客