在postman中设置通过jwt-bearer流程获取token

这篇具有很好参考价值的文章主要介绍了在postman中设置通过jwt-bearer流程获取token。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

简单说一下JWT Bearer 授权:

  1. 客户端(调用方)生成一对公私钥,公钥保存到服务端(授权方),私钥自己保存
  2. 客户端通过私钥生成一个有特定权限的并且有时效的JWT
  3. 客户端使用JWT调用服务器端提供的获取token的接口换取一个代表用户身份的AccessToken

本文介绍postman怎么通过一个私钥,来调用服务器端接口,获取token的

配置步骤

  1. 首先环境里面需要添加环境变量jwt_secret,值为你自己的私钥( -----BEGIN RSA PRIVATE KEY----- ......-----END RSA PRIVATE KEY-----;)

补充:linux下简单生成公私钥对的命令:

openssl req -x509 -nodes -sha256 -days 365 -newkey rsa:1024 -keyout private.pem -out public.pem
  1. 设置Pre-request Script 代码
// 设置JWT的头信息, alg表示加密算法,可按自己需求改成其他算法
var header = {
	'alg': 'RS256',
	'typ': 'JWT'
};

var currentTimestamp = Math.floor(Date.now() / 1000);
// 生成的JWT 里带的信息,可以需求自己修改
var payload = { 
    'exp': currentTimestamp + 60 * 5, // 设置过期时间是5分钟后
    'iat': currentTimestamp,
    'iss': pm.environment.get('client_id') || '', 
	'aud': pm.environment.get('jwt_aud')
};

function generateJwt() {
	eval(pm.globals.get('jsrsasign-js')); // import javascript jsrsasign

	var sHeader = JSON.stringify(header);
	var sPayload = JSON.stringify(payload);

	var signedToken = KJUR.jws.JWS.sign(header.alg, sHeader, sPayload, jwtPrivateKey);

	pm.collectionVariables.set('jwt_signed', signedToken);
	console.log('jwt', signedToken);
}

var navigator = {}; // 为库伪造导航器对象
var window = {}; // 为库伪造窗口对象

if (pm.globals.has('jsrsasign-js') && pm.globals.get('jsrsasign-js') != '' ) generateJwt();
else pm.sendRequest(
	'https://kjur.github.io/jsrsasign/jsrsasign-all-min.js',
	function (err, res) {
		if (err) {
			console.log(err);
		} else {
			pm.globals.set('jsrsasign-js', res.text());
			generateJwt();
		}});
  1. 设置postman Body
    在postman中设置通过jwt-bearer流程获取tokengrant_type: urn:ietf:params:oauth:grant-type:jwt-bearer
    assertion: {{jwt_signed}}
  2. 设置Test代码
var jsonData = JSON.parse(pm.response.text());
pm.collectionVariables.set("protected_access_token", jsonData.access_token);
pm.collectionVariables.set("protected_refresh_token", jsonData.refresh_token);
pm.collectionVariables.set("protected_access_token_expires_in", new Date().getTime() + jsonData.expires_in * 1000);

这块主要是把返回的token,存到环境变量里以供其它API使用,需要根据实际返回修改代码
比如我的返回是:

{
    "access_token": "xxx",
    "token_type": "Bearer",
    "expires_in": 900,
    "refresh_token": "xxxxx",
    "scope": "xxxxx"
}

所以我可以通过 jsonData.access_token的方式取到token, 如果实际返回不是上面结构的话 需要按实际情况修改代码文章来源地址https://www.toymoban.com/news/detail-401200.html

  1. 以上就配置完成了,点击Send按钮,发送请求 获取token

到了这里,关于在postman中设置通过jwt-bearer流程获取token的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 如何在 Postman 中设置 Content-Type?

    在使用  Postman  进行 API 测试时,有时需要设置请求的 Content-Type。本文将介绍如何在 Postman 中设置 Content-Type。想要学习更多关于 Postman 的知识,可访问 Postman 中文文档。 1、首先,打开 Postman 工具并创建一个新的请求接口。输入请求地址,例如  https://api.example.com/user 。 2、

    2024年02月08日
    浏览(38)
  • OpenHarmony轻量设备获取网络中设备IP方式-组播

    ​ 在Openharmony的轻量和小型系统中,受限于cpu与内存资源等原因,网络协议一般使用lwip的实现。而且受限资源影响,lwip的socket数与端口数都通过宏定义控制在7-8个以内。在物联IOT实际应用中,经常会出现多台IOT设备在未知对方IP的状态下,需要对多台IOT设备进行控制与通信。

    2024年02月13日
    浏览(35)
  • c# 获取设备管理器中设备的一切参数

       var args = new object[] { new string[] { \\\"DEVPKEY_Device_FriendlyName\\\", \\\"DEVPKEY_Device_Parent\\\", \\\"DEVPKEY_Device_LocationInfo\\\", \\\"DEVPKEY_Device_LocationPaths\\\" }, null };  这里面的参数参考下面的c++定义,即可 上面代码得到如下 信息:  ADB Interface    USBVID_22D9PID_2765774caac6     0000.0014.0000.013.001.000.000.000.000  

    2024年02月07日
    浏览(30)
  • 快速教你如何使用postman工具进行接口测试?(配置全局token、JWT可用)

    现在很多人都在使用前后端分离进行项目开发,那在后端开发过程中使用postman测试工具可快速便捷完成接口测试。但是在测试过程中,很多人发现因为JWT的鉴权,导致半个小时就需要更新一下token,让我们的测试变得复杂。 若是将token作为全局变量,每次都能够自动获取tok

    2024年02月15日
    浏览(41)
  • nestjs之JWT认证实现流程

    nestjs的jwt认证利用了 Passport.js 的认证机制。要根据这个源码实现您自己的 AuthGuard,需要理解几个关键部分:如何集成 Passport.js、如何处理认证结果,以及如何使用 NestJS 的依赖注入系统。 先自定义一个策略函数类 PassportStrategy 函数返回的是 MixinStrategy 类,该类提供 callback 去

    2024年01月17日
    浏览(29)
  • linux设置动态获取ip:如何在Linux中设置动态IP

    Linux设置动态获取IP的方法如下:使用命令进行设置: Linux设置动态获取IP的方法如下: 1. 使用ifconfig命令进行设置: 2. 使用dhclient命令进行设置: 3. 使用NetworkManager进行设置:

    2024年04月26日
    浏览(39)
  • PHP:数据库中设置文本长度,通过js去限制前台文本长度。扩展:数据类型的限制

     效果图  如上图:当测试111的长度超过数据库中限制的长度,进行提示,并且自动将多余部分截掉 HTML代码 JS功能实现代码 扩展:数据类型的限制 默认对int,varchar,datetime进行限制 功能实现 注:这里会出现时间选择器不能立刻进行展示,需要二次点击才能出现 ,解决方法:

    2024年02月13日
    浏览(28)
  • 一张流程图带你学会SpringBoot结合JWT实现登录功能

    🧑‍💻作者名称:DaenCode 🎤作者简介:啥技术都喜欢捣鼓捣鼓,喜欢分享技术、经验、生活。 😎人生感悟:尝尽人生百味,方知世间冷暖。 📖所属专栏:SpringBoot实战 JWT(JsonWebToken)是 一种轻量级的跨域身份验证解决方案 。通常被用于无状态身份验证机制,将用户信息签名

    2024年02月11日
    浏览(70)
  • 【重点】springcloud分布式中gateway+shiro+jwt认证流程(思路)

    项目原来是单体架构,现拆分成spring cloud微服务架构。 如下两个方法的 切入点 都是在ShiroConfig 配置类(@Configuration)中@Bean注入的 :     1 shiroFilterFactoryBean -   JwtFilter 中的onAccessDenied()                  - 无token:直接放过                         -- 登录/login 

    2024年02月10日
    浏览(51)
  • 04 动力云客之登录后获取用户信息+JWT存进Redis+

    非常好实现. 只要新建一个controller, 并调用SS提供的Authentication对象即可 未登录状态下可以直接访问 api/login/info吗? 不可以. 因为在安全配置类已经写明了, 仅登陆界面允许任何人访问, 其他所有界面都需要认证 由于未写JWT, 默认使用Session 保存会话, ???好像不对 因此只要我们先

    2024年02月21日
    浏览(27)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包