【全栈开发指南】OAuth2授权获取token调试接口的方式

news2024/11/15 21:38:50

  在我们实际应用接口的调用调试过程中,需要用到token或者刷新token,GitEgg支持OAuth2.0协议进行认证授权,这里介绍说明如何通过Postman获取token和refresh_token并进行接口调试。

1、使用密码模式获取token

  根据spring-security-oauth2的实现,进行密码模式验证时,需要验证客户端的用户名密码,其中有两种方式,一种是将客户端的client_Id和client_secret放到请求参数中,一种是将client_Id和client_secret通过BASE64加密后放到Headers里进行Basic验证,我们这里采取第二种方式。

- 首先将client_Id:client_secret进行BASE64加密,在线BASE64工具 https://www.qvdv.com/tools/qvdv-base64.html

image.png

- 将账号密码的密码进行MD5加密,在线MD5工具https://www.qvdv.com/tools/qvdv-md5.html

image.png

- Postman设置Headers参数

image.png

参数列表:

Content-Type: application/x-www-form-urlencoded
TenantId: 0
Authorization: Basic Z2l0ZWdnLWFkbWluOjEyMzQ1Ng==

参数说明:

Content-Type: 设置为表单方式提交
TenantId: 开启多租户时,需设置租户id
Authorization:需填写BASE64编码后的client_Id:client_secret,再加Basic 前缀,让OAuth2知道这是Basic认证

- Postman设置body参数

image.png

参数列表:

grant_type: password
username: admin
password: 25d55ad283aa400af464c76d713c07ad

参数说明:

grant_type表示使用密码模式换取token
username是换取token的用户名
password是换取token的密码,此密码同样需要使用md5加密

  • Postman设置POST请求token的url为 http://127.0.0.1/gitegg-oauth/oauth/token
    ,点击send按钮,就会获取到后台返回的token和refresh_token
    image.png
2、使用获取到的token请求个人用户信息
- Postman设置获取个人信息的Headers参数

将上一步骤中获取到的token前面加Bearer 设置为Authorization的值,注意Bearer后面有个空格。Bearer表示此token为Bearer token后台会根据前缀进行区分是Basic还是Bearer从而进行不同的认证。设置GET请求个人信息的url为 http://127.0.0.1/gitegg-oauth/oauth/user/info
,点击send按钮,就会获取到后台返回的个人信息。
image.png

参数列表:

Authorization:

Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJyb2xlSWRMaXN0IjpbIjIiXSwidXNlcl9uYW1lIjoiYWRtaW4iLCJjbGllbnRfaWQiOiJnaXRlZ2ctYWRtaW4iLCJvcmdhbml6YXRpb25JZCI6MSwib3JnYW5pemF0aW9uTmFtZXMiOm51bGwsIm9yZ2FuaXphdGlvbklkcyI6bnVsbCwic2NvcGUiOlsiYWxsIl0sIm5pY2tuYW1lIjoi566h55CG5ZGYIiwib3JnYW5pemF0aW9uSWRMaXN0IjpudWxsLCJvYXV0aF9pZCI6bnVsbCwiaWQiOjEsImV4cCI6MTY1MTczMzk5OCwianRpIjoiNzA5ZTkxYzktNzg3ZS00ZGM5LTkyMzMtNjJlYTYxOTVhMDQxIiwib3JnYW5pemF0aW9uTmFtZSI6IuaciemZkOWFrOWPuCIsInJvbGVJZCI6bnVsbCwiYXZhdGFyIjoiaHR0cHM6Ly93cGltZy53YWxsc3Rjbi5jb20vZjc3ODczOGMtZTRmOC00ODcwLWI2MzQtNTY3MDNiNGFjYWZlLmdpZiIsImF1dGhvcml0aWVzIjpbIlNZU0FETUlOIl0sInJlYWxOYW1lIjoi566h55CG5ZGYIiwicm9sZUlkcyI6IjIiLCJkYXRhUGVybWlzc2lvblR5cGVMaXN0IjpbIjMiXSwidGVuYW50SWQiOiIwIiwicm9sZU5hbWUiOm51bGwsInJvbGVLZXlMaXN0IjpbIlNZU0FETUlOIl0sInJvbGVOYW1lcyI6Iuezu-e7n-euoeeQhuWRmCIsImFjY291bnQiOiJhZG1pbiJ9.b1Jvoq6ACVm5rlIrGI8Dh90TIOk2DWTlnqTzve3bUoVjKy4Rc6i6JLqnL80bfgzFu6FtMZOcF8-rwV1q3gXkU1dfS2Lifwl5HnE-Ag8KNN2Xf1UvA9M1O7ZftQLnrLdvCySx4Zwte1xQ_5udfwCFiqn56DPZieM6_FAzQR65Uj-F2DUZ1dZNF4ThH1zeBjrL0D_NBUJZ0R6DU-fjeD5ecfGubWIgZqy5jz8DyHE-YemntoeIKVpkl7D2T9KqZQ38wfzSeK95jnzqkLAxCTDGl7i2gtT7sFZWWJo8JErX5z8EYMkOri2WHz_q7NhiVOnd1F40nNR2Eoim3iLPCdYKaQ

TenantId: 0

参数说明:

Authorization: 获取用户信息的token,此token可以访问该用户下所有能够访问的、需要鉴权的接口。
TenantId: 开启多租户时,需设置租户id

3、当token超时,通过refresh_token重新获取token

  RefreshToken(刷新令牌授权模式)和密码授权模式一样都是OAuth2授权模式的其中一种,我们通常讲的token实际是access_token,这个token的超时时间往往比refresh_token的超时时间短,当access_token超时之后,我们会通过refresh_token进行access_token的自动刷新,此操作用户无感知,不需要重新登录,当refresh_token超时时,才给用户返回登录超时提示。

  • 设置Postman刷新token的参数,因为都是OAuth2授权模式的一种,所以认证请求token的接口和使用密码模式授权是同一个接口,参数也基本相同,只是在body里设置refresh_token的值为第一次获取token时的refresh_token
Headers:

image.png

Body:

image.png

点击Send按钮执行请求,获取新的token和refresh_token:

image.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/731033.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

创建虚拟机安装windowserver2016服务器(NETBASE第二课)

2 操作流程 文件-新建虚拟机-自定义(高级)-下一步-稍后安装操作系统-下一步-客户机操作系统-选择Windows 10 X64-下一步-虚拟机名输入win10-1-位置选择(E:\虚拟机\Win10-1)-下一步-固件类型选择UEFI-下一步-下一步-输入内存2048M-…

2023年Arm最新处理器架构分析——X4、A720和A520

1、引言 上一篇文章我们介绍了Arm的Cortex-X1至Cortex-X3系列处理器,2023年的5月底,Arm如期发布了新一年的处理器架构,分别为超级大核心Cortex-X4,大核心A720和小核心A520。在智能手机行业,Arm始终保持每年一迭代的处…

ModaHub魔搭社区:ChatGLM-RLHF:无需微调 教程

目录 使用方法 效果展示 对ChatGLM直接使用RLHF进行调整参数,无需传统的finetune|Modify ChatGLM params with only RLHF。 大部分的RLHF代码都是在分布式框架,不适合学习和使用,本代码的RLHF代码不需要Megatron或者deepspeed框架&#xff…

Maven高级(三)--聚合

1.解决的问题: 此时tlias-web-management模块的父工程是tlias-parent,该模块又依赖了tlias-pojo,tlias-utils模块。那么此时,我们要将tlias-web-management模块打包,是比较繁琐的。因为进行项目打包,maven会从本地仓库来查找tlias…

Jupyter notebook 安装代码提示和补全

打开Anaconda Prompt 终端 依次输入 pip install jupyter_contrib_nbextensions jupyter contrib nbextension install --user pip install jupyter_nbextensions_configurator jupyter nbextensions_configurator enable --user 打开Jupyter notebook

Linux的用户管理精简全总结

(该图由AI绘制 关注我 学习AI画图) 目录 Linux操作系统用户和组的概念 1、为什么需要了解用户和组 2、用户和组的关系 3、用户组操作 ☆☆☆☆☆☆☆☆☆☆☆ /etc/group文件解析 ☆ 用户组的修改 ☆ 用户组的删除 4、用户操作 ☆ 用户信息查…

VSCode 提示 1.16.15 版本的Go,不支持 gopls v.0.13.0

Go1.16.15无法使用 goplsv.0.13.0 问题详情解决办法 问题详情 Gopls was built with Go version 1.16, which will be unsupported by gopls v0.13.0. Please upgrade to Go 1.18 or later and reinstall gopls. If you cant upgrade and want this message to go away, pleas…

FPGA实现二进制转BCD码

1、简介 bcd码:以4bit二进制码表示一个十进制码 例如,432(d) 0100-0011-0010(bcd) 这里具体的判断方法为:(满5)加3法 二进制位宽为W,则BCD位宽只需要&…

JS 实现CSV文件转换SQL文件小工具

一. 需求 最近在项目中遇到一个问题,客户提供的数据是CSV格式的, 需要将CSV文件中的数据转换为SQL语句文件。 😅由于本人不会Excel的vba编程,因此决定使用JS来实现。 二. 实现思路 提供一个文件上传框,支持多文件上…

微信小程序全局配置详解

通过全局配置实现的效果 开发者 微信公众平台 登录网址 https://mp.weixin.qq.com/ 注册网址 https://mp.weixin.qq.com/cgi-bin/wx?token&langzh_CN 微信小程序开发者工具 下载地址 https://developers.weixin.qq.com/miniprogram/dev/devtools/download.html 小…

WPF grid控件定义行和列

在此已经学习了wpf Grid控件&#xff0c; WPF布局控件Grid的基本使用 - 使用kaxaml_bcbobo21cn的博客-CSDN博客 下面继续学习&#xff1b; 定义3行3列的基本代码如下&#xff1b;为了看清效果&#xff0c;设置 ShowGridLines"True"&#xff1b; <Grid ShowGrid…

Tkinter_鼠标选中样式

前言 使用tkinter库创建窗口应用程序示例&#xff0c;包含不同鼠标样式标签。 一、方法 import tkinter as tkclass Mouse_Style:def __init__(self):self.root tk.Tk()self.root.title(样式)self.root.geometry("200x5201100150")self.interface()def interface(…

【G431】多路ADC+DMA采集

文章目录 前言1.CubeMx的配置步骤3.测试代码4.演示效果 总结 前言 之前蓝桥杯程序中使用的是查询方式的ADC&#xff0c;缺点是当采集通道多的时候会导致CPU速率变低从而导致查询ADC代码之后的程序会被阻塞。而DMA就不会&#xff0c;DMA会绕开CPU直接传输。 1.CubeMx的配置步骤…

GDB 查看、修改变量

1、info args : 查看函数的入参内容 2、set print null-stop :遇到无效的字符就不显示出来了 3、set print pretty :让结构体以定义的形式展示出来&#xff0c;一个字段一行 4、 set print arry on :让数组中的元素每个占一行显示 5、 p sizeof(xxx) : 查看xxx的大小&#xff…

STM32 DSP库CUBEMX配置+FFT频率计算

文章目录 前言一、DSP库添加1.1 加一个define1.2 添加文件路径1.3 主函数 二、FFT运算求频率2.1 初始版本版本2 总结 前言 使用DSP中的函数加快计算。 本文首先讲述如何通过添加dsp库。 再讲述使用DSP库进行实数FFT运算。&#xff08;FFT运算用到了前面讲述的STM32CubeMX-ADC …

mysql 安装

常用存储引擎功能对比&#xff1a; mysql 安装流程&#xff1a; 如果直接本地安装&#xff0c;就只需要安装好然后配置环境变量就行了&#xff0c;my.ini文件会自动帮你写好&#xff0c;如果是zip压缩包安装就需要自己写my.ini文件&#xff0c;下面详细介绍zip压缩包安装 下载…

提示工程的前世今生

原文链接&#xff1a;芝士AI吃鱼 通过提示进行情境学习 在生物学中&#xff0c;涌现是一种令人难以置信的特性&#xff0c;由于相互作用的结果&#xff0c;各个部分聚集在一起&#xff0c;表现出新的行为&#xff08;称为涌现&#xff09;&#xff0c;这是你在较小的尺度上看不…

分别基于红黑树、timefd、多级时间轮实现定时器

文章目录 一、定时器的应用二、定时器的触发方式2.1 网络事件和定时事件在一个线程中处理2.2 二、定时器的设计2.1 接口设计2.2 数据结构设计2.2.1 红黑树2.2.3 最小堆2.2.4 时间轮 三、利用红黑树实现定时器3.1 数据结构3.2 接口实现3.2.1 初始化定时器3.2.2 添加定时器3.2.3 …

【CPU】关于x86、x86_64/x64、amd64和arm64/aarch64

为什么叫x86和x86_64和AMD64? 为什么大家叫x86为32位系统&#xff1f; 为什么软件版本会注明 for amd64版本&#xff0c;不是intel64呢&#xff1f; x86是指intel的开发的一种32位指令集&#xff0c;从386开始时代开始的&#xff0c;一直沿用至今&#xff0c;是一种cisc指令…

Github 标星68.5K,不愧是阿里P8架构师整理的 Java 面试复盘笔记

Java 面试 2021 已经过半&#xff0c;不知道大家在今年的金三银四是否拿到了自己理想的 Offer&#xff1f;大家的技术面一共面了多少轮&#xff1f;作为一名程序员&#xff0c;技术面试是不可避免的一个环节&#xff0c;一般技术面试官都会通过自己的方式去考察程序员的技术功…