学习笔记:带你十天轻松完成 Go 微服务系列(七)- RPC 服务 Auth 验证

101 篇文章 5 订阅
34 篇文章 3 订阅

1、学习课程

带你十天轻松搞定 Go 微服务系列(七、RPC 服务 Auth 验证)

今天是学习 go 微服务的第七天,我们继续接着昨天的步骤,进入服务工作区

$ cd mall/service/user

2、修改 user rpc user.yaml 配置文件

$ vim rpc/etc/user.yaml
Name: user.rpc
ListenOn: 0.0.0.0:9000

...

Auth: true               # 是否开启 Auth 验证
StrictControl: true      # 是否开启严格模式
Redis:                   # 指定 Redis 服务
  Key: rpc:auth:user     # 指定 Key 应为 hash 类型
  Host: redis:6379
  Type: node

3、修改 user api user.yaml 配置文件

$ vim api/etc/user.yaml
Name: User
Host: 0.0.0.0
Port: 8000

...

UserRpc:
  App: userapi                          # App 标识
  Token: 6jKNZbEpYGeUMAifz10gOnmoty3TV  # Token 值
  Etcd:
    Hosts:
    - etcd:2379
    Key: user.rpc

4、将 App 标识, Token 值写入 Redis 服务

App 标识作为 rpc 指定 key 的 hash key,Token 值作为 hash key 的值。
在这里插入图片描述

在这里插入图片描述

5、重启 user rpc 服务

注意在 golang 容器下运行

参考:Linux下部署go-zero,运行goctl model运行模板生成命令报错解决方法

$ cd mall/service/user/rpc
$ go run user.go -f etc/user.yaml

看到 Starting rpc server at 127.0.0.1:9000…就是启动成功了,如下图:
在这里插入图片描述

6、重启 user api 服务

注意在 golang 容器下运行

$ cd mall/service/user/api
$ go run user.go -f etc/user.yaml

看到 Starting server at 0.0.0.0:8000…就是重启成功了,如下图所示:

在这里插入图片描述

7、调试 rpc 服务 auth 验证

访问 user api 的 login 接口,我用的是 Postman,我们可以看到接口报错不能正常的返回结果值。

请添加图片描述

Unknown database 'mall'

没有 mall 数据库,见招拆招,我就用 Navicat 连接上主机,记得用 root 登录,admin 权限低,后面有些操作操作不了,如下图:
在这里插入图片描述
在里面新建了一个 mall 数据库,如下图:
在这里插入图片描述
再次访问 user api 的 login 接口,报错

Table 'mall.uers' doesn't exist

请添加图片描述
证明库中缺少 user 表,回顾前几天的步骤,也没有建 user 表的步骤,我就上项目的地址去看文档:
go-zero-mall,发现了建表的 sql 文件位置如下:
在这里插入图片描述
一一把表建好之后,重新访问 user api 的 login 接口,终于没有报错,接口返回用户不存在的信息
请添加图片描述
我接着访问 user api 的 register 接口,进行 user 的注册
请添加图片描述
注册完了之后,访问 user api 的 login 接口,成功输出用户的 accessToken 和 accessExpire
请添加图片描述

8、题外话

那么我们可以修改 user api user.yaml 配置文件中的 Token 值再次请求接口试试。

提示:修改 yaml 配置文件需要重启服务才有效

我们可以从返回的结果中看出,rpc 服务报错了,未经认证,拒绝访问。

大家可以自己再尝试修改 user rpc user.yaml 配置文件中 StrictControl 为 false 看看效果。

9、系列

学习笔记:带你十天轻松搞定 Go 微服务系列(一)- 环境搭建
学习笔记:带你十天轻松搞定 Go 微服务系列(二)- 服务拆分
学习笔记:带你十天轻松搞定 Go 微服务系列(三)- 用户服务
学习笔记:带你十天轻松搞定 Go 微服务系列(四)- 产品服务
学习笔记:带你十天轻松搞定 Go 微服务系列(五)- 订单服务
学习笔记:带你十天轻松搞定 Go 微服务系列(六)- 支付服务
学习笔记:带你十天轻松搞定 Go 微服务系列(七)- RPC 服务 Auth 验证
学习笔记:带你十天轻松搞定 Go 微服务系列(八)- 服务监控
学习笔记:带你十天轻松搞定 Go 微服务系列(九)- 链路追踪
学习笔记:带你十天轻松搞定 Go 微服务系列大结局(十)- 分布式事务

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

跳舞的皮埃尔

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值