eggjs 怎么使用 egg-jwt 实现 token 解析?
问题
我们访问某个接口的时候,带上 token 请求时,如何在服务端解析出 token 内的信息。上一篇我们实现了登录功能,生成了 token 返回到客户端,下面就来实现一下,客户端返回 token 时,服务端应该怎么解析
实现
1、参考 egg-jwt 写法
可以参考一下:https://github.com/okoala/egg-jwt/blob/master/test/jwt.test.js#L36
2、方法实现
我们在 /controller/user.js
中,新增一个验证方法 getTokenInfo 的方法
- 获取请求头 authorization 属性,值为 token
- 用 app.jwt.verify(token, app.config.jwt.secret),解析出 token 的值
// 测试 解析 token
async getTokenInfo() {const { ctx, app } = this;// 1. 获取请求头 authorization 属性,值为 tokenconst token = ctx.request.header.authorization;// 2. 用 app.jwt.verify(token, app.config.jwt.secret),解析出 token 的值const decode = await app.jwt.verify(token, app.config.jwt.secret);// 返回 tokenctx.body = {status: 200,desc: '获取成功',data: { ...decode }};
}
3、路由配置
'use strict';/*** @param {Egg.Application} app - egg application*/
module.exports = app => {const { router, controller } = app;// 注册路由router.post('/api/user/register', controller.user.register);// 登录路由router.post('/api/user/login', controller.user.login);// 测试 token 解析router.get('/api/user/token', controller.user.getTokenInfo);
};
4、测试接口
我用 Apifox 测试一下,流程如下:
1、新建接口
2、配置好接口信息,保存
3、先调用登录接口拿到 token
4、然后将 token 放到测试接口的头部参数里
{"status": 200,"desc": "获取成功","data": {"id": 5,"username": "kaimo313","exp": 1642668827,"iat": 1642582427}
}
这样我们接解析 token 成功了。
eggjs 怎么使用 egg-jwt 实现 token 解析?相关推荐
- 在线JWT Token解析解码
在线JWT Token解析解码 在线JWT Token解析解码 JSON Web Token(缩写 JWT)是目前最流行的跨域认证解决方案.本工具提供在线解码的功能 JSON Web Token(缩写 ...
- JWT 生成Token、解析Token的简单工具类
pom.xml导入依赖: <dependency><groupId>io.jsonwebtoken</groupId><artifactId>jjwt& ...
- jwt生成token与解析token
1.生成token与解析token部分代码 pom <!-- token验证 --><dependency><groupId>com.auth0</group ...
- JWT生成Token及解析Token
JWT生成Token详解 [第一部分]历史文章: SpringBoot总结(一)--第一个SpringBoot项目 SpringBoot总结(二)--Spring Boot的自动配置 SpringBo ...
- JWT —— 生成Token、解析Token的简单工具类
目录 1.JWT介绍 2.导入依赖 3.用户类 4.JWT工具类 背景:最近需要实现根据账号密码生成令牌码的功能,token解析后需要得到用户id.用户账号和用户类型.实现起来并不难,解决方法就是在J ...
- jwt Claims token 秘钥稍有不同也能解析成功 signWith setSigningKey
问题描述 使用io.jsonwebtoken.Jwts构造了一个token,在解析这个token时,发现解析秘钥和构建秘钥不完全相同也可以成功解析,代码如下 签发token /** 测试生成token ...
- java token生成和验证_SpringBoot集成JWT生成token及校验方法过程解析
GitHub源码地址:https://github.com/zeng-xian-guo/springboot_jwt_token.git 封装JTW生成token和校验方法 public class ...
- php jwt token 解析,JSON Web Token(JWT)入坑详解
JSON Web Token(JWT)入坑详解 龙行 PHP 2019-6-17 1651 0评论 /** JWT生成类 **/ class Jwt { private $al ...
- 前后端分离中使用基于jwt的token进行身份认证
基于jwt的Token认证机制可以看之前的文章: 基于JWT的Token认证机制实现 在前后端分离中,我们与前端约定一种身份认证机制.当用户登录的时候,我们会返回给前端一个token,前端会将toke ...
最新文章
- yarn架构——本质上是在做解耦 将资源分配和应用程序状态监控两个功能职责分离为RM和AM...
- php 分页 查询 es,php-如何使分页elasticsearch?
- 信息系统项目管理师-第5章:项目范围管理-重点汇总
- 清华大学开源迁移学习算法库:基于PyTorch实现已有算法
- 最常用的前端网站模板集合
- 如何基于FastReport报表工具,生成报表PDF文档展示医院处方笺的内容
- 耿建超英语语法---非谓语动词作主语
- 如何做一个自律的人?
- 细胞器标记物丨FUS抗体高品质结果展示
- 30、【backtrader股票策略】《151 trading strategies》中的支撑与阻力策略(support and resistance)
- 【毕业N年系列】 毕业第二年
- 手机word文档怎么恢复
- Win10自动修复失败,无法正常启动
- linux网络hack用法之onlink路由
- android qq群加群代码,逆向分析某QQ恶意自动邀请加群APK
- 在visual studio中出现Error spawning的原因及解决思路
- 史上最全的BAT Mysql面试题在这里
- 办公室常用赞美英语经典句子
- 安卓开发之利用contentprovider进行数据获取
- python异步协程,抓取豆瓣top250电影海报。
热门文章
- c语言批量修改文件名称,C语言实现批量文档名修改
- Shell文件查找之find命令(1)
- spring全集 - - - 第五章RESTful开发
- 海奥华预言--第七章 慕大陆和远东岛
- MFC应用的菜单,工具栏和状态栏(vs2019)
- 2021-11-15 基于音乐商店NetMusicShop的复杂查询(二)
- 手动挡/自动挡/手自一体/CVT/双离合——变速箱扫盲
- keystone中Vertify operation出现:No handlers could be found for logger keystoneclient.httpclient的问题
- Bea公司和sun公司介绍
- 服务器10GE网卡识别失败