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

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

学习笔记:带你十天轻松搞定 Go 微服务系列(七)- RPC 服务 Auth 验证 1、学习课程2、修改 user rpc user.yaml 配置文件3、修改 user api user.yaml 配置文件4、将 App 标识, Token 值写入 Redis 服务5、重启 user rpc 服务6、重启 user api 服务7、调试 rpc 服务 auth 验证8、题外话9、系列

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 微服务系列大结局(十)- 分布式事务

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/993898.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-21
下一篇 2022-05-21

发表评论

登录后才能评论

评论列表(0条)

保存