【Go-Zero】type mismatch for field “Auth.AccessSecret“, expect “string“, actual “number“报错解决方案

【Go-Zero】type mismatch for field “Auth.AccessSecret”, expect “string”, actual "number"报错解决方案

大家好 我是寸铁
总结了一篇type mismatch for field “Auth.AccessSecret”, expect “string”, actual "number"解决方案的文章✨
还包含配置jwt密钥的各种注意事项✨
喜欢的小伙伴可以点点关注


问题背景

大家好,我是寸铁。今天在学习gozero 框架使用jwt 进行鉴权登录时,运行入口文件,报错yaml 文件配置报错bug , 下面和寸铁一起来瞧瞧这个bug 是怎么样的?


报错

运行入口文件,报错如下:
在这里插入图片描述
具体为:

error: config file etc/users.yaml, type mismatch for field “Auth.AccessSecret”, expect “string”, actual “number”

排查

这个错误表明配置的密钥需要字符串,而不是纯数字。

Step1

  • 首先,查看一下配置的yaml 文件
    【Go-Zero】type mismatch for field “Auth.AccessSecret“, expect “string“, actual “number“报错解决方案_第1张图片

Step2

尝试一下修改yaml 文件的密钥
修改为1234567a 不为纯数字格式
【Go-Zero】type mismatch for field “Auth.AccessSecret“, expect “string“, actual “number“报错解决方案_第2张图片

Step3

再运行一下入口文件,运行结果如下:
成功!
在这里插入图片描述

总结

在配置yaml 文件中的jwt 鉴权登录的密钥时,要注意如下几点:

密钥的设置不能为纯数字

如:12345678 这种纯数字是不可以=的
1234567a 可以
abacsdds 可以
12367*&88 可以

密钥可以包含特殊字符

设置包含特殊字符的密钥
【Go-Zero】type mismatch for field “Auth.AccessSecret“, expect “string“, actual “number“报错解决方案_第3张图片

运行结果如下:
【Go-Zero】type mismatch for field “Auth.AccessSecret“, expect “string“, actual “number“报错解决方案_第4张图片

这说明密钥可以包含特殊字符

密钥的长度不低于8位

试一下密钥长度为8
【Go-Zero】type mismatch for field “Auth.AccessSecret“, expect “string“, actual “number“报错解决方案_第5张图片
运行结果如下:
在这里插入图片描述

这说明密钥的长度不能低于8位


看到这里的小伙伴,恭喜你又掌握了一个技能
希望大家能取得胜利,坚持就是胜利
我是寸铁!我们下期再见

往期好文

【保姆级教程】Windows11下go-zero的etcd安装与初步使用

【保姆级教程】Windows11安装go-zero代码生成工具goctl、protoc、go-zero

【Go面试向】defer与time.sleep初探

【Go面试向】defer与return的执行顺序初探

【Go面试向】Go程序的执行顺序

【Go面试向】rune和byte类型的认识与使用

【Go面试向】实现map稳定的有序遍历的方式

你可能感兴趣的:(go,golang,服务器,jwt,密钥,后端,go-zero,总结)