现在有 2 个独立的项目 app1 和 app2 。都是采用 jwt 的方式进行认证。
如何带着 app1 的 token 去访问 app2 的接口时 无需再次认证。
我想要的方案如下:
1. 两个项目用一套认证逻辑,同样的 key 加密或解密 token.(感觉有点 low)
2. 集成 spring cloud 在网关进行权限认证
3. oauth2
4. cas
你们认为那种方案比较合适,或者还有其他什么方式,帮忙给点建议,谢谢。
|  |      1MikeLei      2020-04-23 19:55:15 +08:00 我也是采用 jwt,集成 Shiro,把 token 跟权限缓存到 redis 里面,两个系统用同一个 redis 就不需要再次认证啦。 | 
|  |      2Jafee      2020-04-23 20:39:23 +08:00 可以用网关统一认证,然后再转发到相关服务。 | 
|  |      3xuanbg      2020-04-23 20:48:16 +08:00 正规的做法是 2 楼的方案。当然 1 楼的也能用,但不推荐。 | 
|  |      4CoderGeek      2020-04-23 20:51:59 +08:00 oauth2 | 
|  |      5CoderGeek      2020-04-23 20:52:23 +08:00 做统一鉴权服务  我的主页有类似的 demo | 
|  |      6CoderGeek      2020-04-23 20:54:40 +08:00 仔细看了下 我说的不太好 , 这种 token 分发要收口在一个服务 还要维护鉴权关系 做一个分发鉴权的系统 或者网关拦截 两个 token 还要有权限配置 | 
|      7wangxiaoaer      2020-04-23 21:05:04 +08:00 via Android @Jafee 如果网关做认证那是不是相当于网关开始涉及业务了? | 
|  |      8huijiewei      2020-04-23 22:03:53 +08:00 @wangxiaoaer 网关只做认证 | 
|      9Kyle18Tang      2020-04-24 00:36:41 +08:00 OAuth2 | 
|      10jzmws      2020-04-24 08:52:20 +08:00 最外面套一个网关  其他模块都不做认证 | 
|      11mocxe2vwww OP @xuanbg 确实,还是网关最合适。 | 
|  |      12abcbuzhiming      2020-04-24 11:10:37 +08:00 想简单就 1 楼,redis 缓存 jwt,正统一点的是 2 楼 | 
|      13securityCoding      2020-04-24 11:20:37 +08:00  1 @wangxiaoaer 鉴权不算具体业务,正确的做法就是通过网关,对底层的微服务屏蔽登录态 /权限相关的逻辑. 网关层面鉴权成功将登录态属性设置到上下文中( http-header/rpc-context) ,底层服务直接获取属性就好 . | 
|      14securityCoding      2020-04-24 11:21:49 +08:00 springboot 转 spring-cloud 几乎无成本 ,阿里开源的 nacos 同时做配置中心 /注册中心非常方便 | 
|      15mocxe2vwww OP @securityCoding 我看了下你说的 nacos,感觉是阿里云 API 网关的简化版。 | 
|      16securityCoding      2020-04-25 10:03:47 +08:00 @mocxe2vwww nacos 跟网关不是一个领域的东西 ,你可以这样理解他综合了 Zookeeper 和 Apollo |