我们用一个系列来讲解从需求到上线、从代码到k8s部署、从日志到监控等各个方面的微服务完整实践。
整个项目使用了go-zero开发的微服务,基本包含了go-zero以及相关go-zero作者开发的一些中间件,所用到的技术栈基本是go-zero项目组的自研组件,基本是go-zero全家桶了。
实战项目地址:https://github.com/Mikaelemmmm/go-zero-looklook
1、鉴权服务

1.1 identity-api
identity主要是用来做鉴权服务的,前面我们nginx网关的时候有提到。在访问一个资源的时候,nginx内部会先来identity-api中解析token,identity-api会去请求identity-rpc,所有的验证与颁发token,统一是在identity-rpc中做的

我们会从header的Authorization中获取token,从x-Original-Uri获取访问的资源路径
- 如果当前访问的路由需要登陆:
-
token解析失败:就会返回给前端http401错误码;
-
token解析成功:就会将解析出来的userId放入header的x-user中返回给auth模块,auth模块会把header传递给对应访问的服务(usercenter), 这样我们在usercenter直接就可以拿到该登陆用户的id了
-
- 如果当前访问的路由不需要登陆:

本文介绍了使用Go语言和go-zero实现微服务鉴权的详细过程,涵盖identity-api和identity-rpc的设计,以及goctl、protoc等工具的安装。鉴权服务通过身份验证和token校验确保安全性,同时提供了项目源码地址和微信交流群信息。
最低0.47元/天 解锁文章
409

被折叠的 条评论
为什么被折叠?



