当前位置: 首页 > news >正文

木木科技 网站艰涩商品分类标准

木木科技 网站艰涩,商品分类标准,松江网站开发培训学校,wordpress注册账号前面我们分享了 go-zero 的快速实战以及日志组件的剖析#xff0c;本次我们来实战使用 go-zero jwt 鉴权 本次文章主要是分享关于 go-zero 中 jwt 的使用方式#xff0c;会以一个 demo 的方式来进行实战#xff0c;对于使用 goctl 工具以及安装细节就不在赘述#xff0c;有…前面我们分享了 go-zero 的快速实战以及日志组件的剖析本次我们来实战使用 go-zero jwt 鉴权 本次文章主要是分享关于 go-zero 中 jwt 的使用方式会以一个 demo 的方式来进行实战对于使用 goctl 工具以及安装细节就不在赘述有需要的话可以查看 官网 本次文章主要分为如下几个部分 Jwt 的简单介绍 Go-zero 中使用 jwt 实战 Jwt 的简单介绍 关于 jwt 鉴权的细节和原理感兴趣的朋友可以查看历史文章JWT身份认证(附带源码讲解) | GO主题月 那么我们如何识别什么时候需要使用 jwt 呢 用于授权 例如某个系统通过例如账号密码登录之后后台会生成一个 jwt这个用户在这个系统之后的任何操作都会去校验这个 jwt就不需要用户操作系统内其他模块的时候还去进行一次登录 当然这是需要我们做好设定这个 jwt 针对哪一些路由可以使用从而允许用户访问该令牌允许的路由服务和资源 用于信息交换 因为 jwt 可以与各方进行安全的传输内部使用了签名算法公钥加密私钥解密而且 jwt 的数据各种中有标头有效载荷以及其他的签发时间过期时间颁发人等等可以用来校验信息是否被篡改了 Go-zero 中使用 jwt 实战 话不多说咱们就来开始实战吧先来给自己提一个需求 需求 同学们平时去图书馆都是需要登录自己的账号才可以进入系统查询书籍余量的 那么我们就来实现一下用账号密码登录图书系统并生成一个 jwt后续该用户进行书籍查询的时候就可以直接使用 jwt 来进行鉴权 分析 那么根据上述需求显然咱们会使用到数据库本次这里咱们仍然使用 mysql 进行演示并且会涉及到用户表和图书表 我们可以现在创建一下这两张表 user table user.sql CREATE TABLE user (stu_id varchar(255) NOT NULL COMMENT stu_id,name varchar(255) NOT NULL COMMENT name,password varchar(255) NOT NULL COMMENT password,gender varchar(255) NOT NULL COMMENT gender,PRIMARY KEY(stu_id) ) ENGINEInnoDB DEFAULT CHARSETutf8mb4;stu_id学号name姓名password密码gender性别 book table book.sql CREATE TABLE book (book_id varchar(255) NOT NULL COMMENT stu_id,name varchar(255) NOT NULL COMMENT name,count INTEGER (255) NOT NULL COMMENT password,PRIMARY KEY(book_id) ) ENGINEInnoDB DEFAULT CHARSETutf8mb4;book_id图书 idname图书名称count图书剩余数量 咱们可以向表中插入一些 demo 数据便于后续使用 insert into book(book_id,name,count)values(000001,kubernetes in action,99); insert into book(book_id,name,count)values(000002,effective go,88); insert into book(book_id,name,count)values(000003,穷爸爸富爸爸,21);insert into user(stu_id,name,password,gender)values(13141549, 小胖, Aa123123, 男); insert into user(stu_id,name,password,gender)values(15161766, 阿强, 6r*,oo, 男); insert into user(stu_id,name,password,gender)values(1325590, marry, 123456, 女);开始实战 go-zero 的 jwt 先来看看基本的代码目录 新建代码目录并编写 book 和 user 的 api 新建目录 mkdir my_test_demo/my_book_sys/book/api -p mkdir my_test_demo/my_book_sys/book/model -p mkdir my_test_demo/my_book_sys/user/api -p mkdir my_test_demo/my_book_sys/user/rpc -p mkdir my_test_demo/my_book_sys/user/model -p cd my_test_demo go mod init my_test_demo go mod tidy编写 api 文件 并生成 go 代码 book.api 定义 book api GET /search/do 查询书籍接口使用 jwt: Auth 进行标识 通过请求书名鉴权完毕之后响应响应书名对应的剩余数量 user.api 定义 user api 定义 POST /user/login 接口 通过账号密码请求接口内部校验完毕之后返回 jwt token \ 使用工具将上述 api 生成 go 对应的代码 cd my_test_demo/my_book_sys/book/api vim book.api goctl api go -api book.api -dir .cd my_test_demo/my_book_sys/user/api vim user.api goctl api go -api user.api -dir .编写数据库的 sql 语句使用 goctl 生成 go 代码 直接将上述的 ****book.sql 拷贝到 my_test_demo/my_book_sys/book/model 下 将 user.sql 拷贝到 ****my_test_demo/my_book_sys/user/model 下 生成数据库相关的 go 代码文件 cd my_test_demo/my_book_sys/book/model goctl model mysql ddl -src book.sql -dir .cd my_test_demo/my_book_sys/user/model goctl model mysql ddl -src user.sql -dir .这个时候咱们就已经完成了大部分的准备工作接下来我们来查看一下代码目录 添加数据库配置和 jwt 相关配置 User 部分 修改 my_test_demo/my_book_sys/user/api/etc/user-api.yaml 加上数据库配置和 Auth 配置 DataSource 数据库配置 Auth jwt 配置 AccessSecret jwt 需要的密钥AccessExpire 过期时间单位 秒 修改 my_test_demo/my_book_sys/user/api/internal/config/config.go 增加配置对应的数据结构 补充 svc 层的数据结构修改 my_test_demo/my_book_sys/user/api/internal/svc/servicecontext.go 以及补充 NewServiceContext 的实现 补充咱们的核心逻辑层的代码my_test_demo/my_book_sys/user/api/internal/logic/loginlogic.go大体逻辑如下 校验入参去掉输入的用户名和密码的前后空格 查询数据库进行数据校验此处我们手动在 my_test_demo/my_book_sys/user/model/usermodel_gen.go 文件中添加了数据库操作的 FindOneByName 方法 校验通过之后生成 jwt token 进行响应 此处的 model 方法可以加在 my_test_demo/my_book_sys/user/model/usermodel_gen.go Book 部分 修改 my_test_demo/my_book_sys/book/api/etc/book-api.yaml 加上数据库配置和 Auth 配置 其中 AccessSecret 和 AccessExpire 的字段名和值保持和上述 user 路径下的内容一致 Name: search-api Host: 0.0.0.0 Port: 9001 DataSource: root:123456tcp(localhost:3306)/test_demo Auth:AccessSecret: secretoooppppooooAccessExpire: 3600同理添加配置对应的数据结构修改 my_test_demo/my_book_sys/book/api/internal/config/config.go type Config struct {rest.RestConfDataSource stringAuth struct {AccessSecret stringAccessExpire int64} }补充 svc 层的数据结构修改 my_test_demo/my_book_sys/book/api/internal/svc/servicecontext.go 以及补充 NewServiceContext 的实现 补充咱们的核心逻辑层的代码my_test_demo/my_book_sys/book/api/internal/logic/searchlogic.go大体逻辑如下 通过书名查询数据库 返回具体书名的剩余数量 上述代码中 l.svcCtx.BookHttpModel.FindOneByName 是我们自定义修改了 model 下的文件内容新增 FindOneByName 方法 修改 my_test_demo/my_book_sys/book/model/bookmodel_gen.go 验收成果 咱们分别进入到项目对应的 api 路径下启动服务 终端1 cd my_test_demo/my_book_sys/book/api go run search.go终端2 cd my_test_demo/my_book_sys/user/api go run user.go终端3 咱们先来请求 book 的 api在没有登录系统的情况下来查询书籍看看是什么样的效果 curl -i -X GET \http://localhost:9001/search/do?nameeffective%20go很明显服务给我们返回了一个未授权说明咱们的鉴权机制此处是有效果的那么接下来登录一个用户 // post 用户登录curl -i -X POST http://localhost:9002/user/login -H Content-Type: application/json -d {username:小胖,password:Aa123123 }可以看到是登录成功了且服务端给我们返回了对应的 jwt token接下来咱们执行第一步请求查询一下数据的数量 // get 书籍 curl -i -X GET \http://localhost:9001/search/do?nameeffective%20go -H Authorization: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE2NjA5NzMwNDEsImlhdCI6MTY2MDk2OTQ0MSwic3R1SWQiOiIxMzE0MTU0OSJ9.Jae_5GPr-xuB2mfqospfisV93ReUnGTZJ87WsIQ-bhE很明显此处的鉴权机制 ok鉴权完毕之后正确查询数据库查询到我们期望的书籍剩余数量 兄弟们动起手来吧先来应用 go-zero 的 jwt 再去看 go-zero 的实际源码细节很快就能明白 具体的源码地址可以查看https://github.com/qingconglaixueit/my_test_Demo 至此本篇内容结束 感谢阅读欢迎交流点个赞关注一波 再走吧 欢迎点赞关注收藏 朋友们你的支持和鼓励是我坚持分享提高质量的动力 好了本次就到这里 技术是开放的我们的心态更应是开放的。拥抱变化向阳而生努力向前行。 我是阿兵云原生欢迎点赞关注收藏下次见~ \ \ // get 书籍 curl -i -X GET \http://localhost:9001/search/do?nameeffective%20go -H Authorization: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE2NjA5NzMwNDEsImlhdCI6MTY2MDk2OTQ0MSwic3R1SWQiOiIxMzE0MTU0OSJ9.Jae_5GPr-xuB2mfqospfisV93ReUnGTZJ87WsIQ-bhE// post 用户登录curl -i -X POST http://localhost:9002/user/login -H Content-Type: application/json -d {username:小胖,password:Aa123123 }可以进入地址进行体验和学习https://xxetb.xet.tech/s/3lucCI
http://www.w-s-a.com/news/57450/

相关文章:

  • 甘肃省住房和城乡建设厅注册中心网站千博企业网站管理系统2013
  • 西餐厅网站模板seo搜索引擎优化ppt
  • 什么做的网站吗wordpress注册可见插件
  • 献县做网站价格可以提升自己的网站
  • 如何修改网站title建设网站只能是公司
  • 网站推广效果怎么样建设工程公司组织架构图
  • 成都制作网站价格表网站安全证书过期怎么办
  • 高校图书馆网站的建设方案湖南常德市
  • 房地产怎么做网站推广wordpress插件汉化下载
  • 一般pr做视频过程那个网站有无锡网络公司平台
  • 安徽网站推广系统网站根目录权限设置
  • 班级网站建设需求智慧校园登录入口
  • asp.net网站发布到虚拟主机电商设计网站哪个好
  • 做的网站怎么转成网址链接企业为什么要找会计
  • 关于建设网站的情况说明书文化建设方面的建议
  • 订票网站开发公司大通证券手机版下载官方网站下载
  • 网店美工的意义与发展佛山推广seo排名
  • 网站在建设中模板自助云商城
  • 珠海网站设计建建建设网站公司网站
  • 广州高端网站制作公司哪家好网页制作公司 软件
  • 最快做网站的语言百度站长反馈
  • 简单网站设计价格手机网站技巧
  • 什么颜色做网站显的大气网站建设的含盖哪方面
  • 没网站怎么做二维码扫描连接济南做网站推广哪家好
  • 台州建设规划局网站搞外贸一般是干什么的
  • 怎么提高自己网站的知名度电子商务是建网站
  • 官方查企业的网站办公用品网站建设策划书
  • 微信网站搭建哪家好网站中转页
  • 阿里巴巴网站开发是谁长沙自助模板建站
  • 阿里云网站方案建设书网络公司运营是干啥的