26.OpenIdConnect获取用户信息的两种方式

openId在OAuth基础之上,在下面这红框内拿到Authorization Code之后还可以返回IdToken。


IdToken和AccessToken一起返回。IdToken就会包括了用户的信息Claims 。通过我们的ProfileService返回回去。

也就是这里 设置为True了 ,就会把新用户的信息都包含在IdToken里面返回给用户,第三方拿到IdToken就可以用了不需要再去获取AccessToken,这是一种方式

另外一种方式是IdToken里面不包含用户的信息。它会有一个UserInfoEndpoint.
通过accessToken去访问UserInfoEndPoint 返回UserInfoClaims


这是我们在postMan里面通过返回的AccessToken再去获取UserInfo的信息

客户端请求的时候设置

CodeIdTokenToken最方便的一种方式把IdToken和AccessToken都返回

我们可以F12进去看到CodeIdTokenToken这个常量的实际的值,里面包含了Code、id_token和token这三个信息

以上就是OpenIdConnect返回用户信息的两种方式

原文地址:https://www.cnblogs.com/wangjunwei/p/10983051.html

时间: 2024-07-29 11:53:32

26.OpenIdConnect获取用户信息的两种方式的相关文章

微信小程序 - 获取用户信息的几种方式

1. 老接口(上线使用-测试用button先获取用户信息) 1 // 登录 2 wx.login({ 3 success: res => { 4 // 发送 res.code 到后台换取 openId, sessionKey, unionId 5 // 也就是发送到后端,后端通过接口发送到前端,前端接收用户信息等.... 6 wx.setStorageSync('code', res.code); 7 console.log(wx.getStorageSync('code')) 8 9 // 获

strus2中获取表单数据 两种方式 属性驱动 和模型驱动

strus2中获取表单数据 两种方式 属性驱动 和模型驱动 属性驱动 /** * 当前请求的action在栈顶,ss是栈顶的元素,所以可以利用setValue方法赋值* 如果一个属性在对象栈,在页面上可以根据name属性进行回显*/ /** * 属性驱动实现的条件:* 1.当前请求的action在栈顶,所以action中的属性就暴漏出来了* 2.获取页面上表单的元素,整合成一个map * 3.调用setValue方法赋值*/ 1 package cn.itcast.struts2.sh; 2 3

得到当前堆栈信息的两种方式(Thread和Throwable)的纠结

今天进行slf4j中logger的同步封装,主要目的是为了以后方便更换日志实现系统. 遇到的问题:使用Thread.currentThread().getStackTrace()[1].getClassName()得到的是当前类而不是调用类,见下面代码: private org.slf4j.Logger logger = null; /** * construction method */ public Logger(){ // get the current class logger logg

JavaWeb后台从input表单获取文本值的两种方式

JavaWeb后台从input表单获取文本值的两种方式 #### index.html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <input type="text" name="n

微信网页开发之获取用户unionID的两种方法--基于微信的多点登录用户识别

假设网站A有以下功能需求:1,pc端微信扫码登录:2,微信浏览器中的静默登录功能需求,这两种需求就需要用到用户的unionID,这样才能在多个登录点(终端)识别用户.那么这两种需求下用户的unionID该如何获取呢? 1,先看pc端的解决方案 以snsapi_login为scope发起网页授权,先拿网站应用的appid和secret用授权接口获取"网页授权access_token",再利用"网页授权access_token"通过"拉取用户信息的api接口&

微信获取用户信息的两个接口和两个ACCESS_TOKEN

有一段时间没有搞微信开发了 ,今天突然要改一下程序! 回头一看 微信的帮助文档太tm的稀烂的,太难懂了,这做个笔记以后看着方便 微信有2个ACCESS_TOKEN, 1,基础接口的token 获取接口是 https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET 2,用户网页授权access_token 获取接口地址是 https://api.weixin

jQuery 获取DOM节点的两种方式

jQuery中包裹后的DOM对象实际上是一个数组,要获得纯粹的DOM对象可以有两种方式: 1.使用数组索引方式访问,例如: var dom = $(dom)[0]; 2.使用函数get()访问,例如: var dom = $(dom).get(0); get()函数中的参数为索引号. 3.示例 var div = document.createElement("DIV"); div.innerText = "TEST IS OK!"; document.body.a

通过java类获取项目绝对路径两种方式

经常会遇到通过java类获取项目路径,并且通过该相对路径或者绝对路径加载资源文件的问题.通常最常用的的两种方式是通过classLoader或者class的getResource()方法. public static final String getPath(){ String path1 = Constant.class.getClassLoader().getResource("").getPath(); String path2 = Constant.class.getClassL

js获取url参数值的两种方式

js获取url参数值的方法有很多,下面也为大家介绍两种,喜欢的朋友可以测试下,希望对大家有所帮助 方法一:正则分析法 代码如下: function getQueryString(name) { var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i"); var r = window.location.search.substr(1).match(reg); if