jwt 如何实现一个服务认证了另一个服务也可以认证

目前我有一个商城系统,订单部分用golang+gin 框架写的,其余用laravel写的
我现在想让在laravel 这边登录了的用户通过token 在golang 那边也可以做验证

本作品采用《CC 协议》,转载必须注明作者和本文链接
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 10
gongmeng

file
这是我写的一个认证的,解析token验证就行了,保证两个项目的JWT密钥一致

2年前 评论
lijizheng (楼主) 2年前
gongmeng (作者) 2年前
lijizheng (楼主) 2年前
gongmeng (作者) 2年前
lovewei 2年前

golang-jwtSigningMethodHS256 正常解析就行。也可以用其他的库

2年前 评论
lijizheng (楼主) 2年前

在两个服务前面用 API Gateway 解析 JWT,然后如果 Token 有效则在反向代理请求头中附加从 Token 中解析出来的用户信息!

后端服务从请求头中获取用户信息即可!

2年前 评论
davidyanxw

提供几个思路:

  1. 复杂方案--sso单点登录,有个做sso认证的server, 来整体校验登录状态, 你需要单独搭建一套sso认证系统;
  2. api方案--golang已经实现了登录验证, laravel直接调用golang api就可以了,注意golang api接口要放在内网;
  3. laravel实现方案--laravel把golang校验的逻辑重写一遍就可以了.

另外, 第2个方案, 换成微服务或者rpc, 也是一样的, 确保任务服务有一处就行, 不过这样的话复杂度也很高了.

2年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!