如何像nodejs一样使用javaopenid客户端库获取用户信息 我想使用access令牌来获取用户信息,该用户信息具有与nodejs相同的java开放id连接库。 我经常获取userInfo,它在nodejs中运行得非常好 /** **客户端id和客户端机密现在可以为空 */ const{Issuer}=require('openid-client'); 常量结束点='xxx' const access_令牌='xxx' discover(端点)。然后(函数(发卡方){ const client=新的颁发者。客户端({ 客户id:'xx', 客户机密:“xx”, }); 用户信息(访问令牌)。然后(函数(用户信息){ console.log('userinfo%j',userinfo); }); });
我用谷歌搜索java开放id库,并从中找到一些库 最后我用如何像nodejs一样使用javaopenid客户端库获取用户信息 我想使用access令牌来获取用户信息,该用户信息具有与nodejs相同的java开放id连接库。 我经常获取userInfo,它在nodejs中运行得非常好 /** **客户端id和客户端机密现在可以为空 */ const{Issuer}=require('openid-client'); 常量结束点='xxx' const access_令牌='xxx' discover(端点)。然后(函数(发卡方){ const client=新的颁发者。客户端({ 客户id:'xx', 客户机密:“xx”, }); 用户信息(访问令牌)。然后(函数(用户信息){ console.log('userinfo%j',userinfo); }); });,java,node.js,oauth-2.0,openid-connect,Java,Node.js,Oauth 2.0,Openid Connect,我用谷歌搜索java开放id库,并从中找到一些库 最后我用 我按照链接编写了以下代码: import java.io.*; 导入java.net。*; 导入com.nimbusds.oauth2.sdk.http.*; 导入com.nimbusds.oauth2.sdk.token.*; 导入com.nimbusds.openid.connect.sdk.claims.*; 课堂测试{ 公共静态void main(字符串[]args)引发异常{ 字符串uriStr=“”; 字符串tokenStr
import java.io.*;
导入java.net。*;
导入com.nimbusds.oauth2.sdk.http.*;
导入com.nimbusds.oauth2.sdk.token.*;
导入com.nimbusds.openid.connect.sdk.claims.*;
课堂测试{
公共静态void main(字符串[]args)引发异常{
字符串uriStr=“”;
字符串tokenStr=“”;
uriuserinfoendpoint=新的URI(uriStr);
BearerAccessToken token=新的BearerAccessToken(tokenStr);
//提出请求
HTTPResponse HTTPResponse=新的UserInfoRequest(userInfoEndpoint,令牌)
.toHTTPRequest()
.send();
//解析响应
UserInfoResponse UserInfoResponse=UserInfoResponse.parse(httpResponse);
如果(!userInfoResponse.indicatesSuccess()){
//请求失败,例如,由于令牌无效或过期
System.out.println(userInfoResponse.toErrorResponse().getErrorObject().getCode());
System.out.println(userInfoResponse.toErrorResponse().getErrorObject().getDescription());
返回;
}
//提取索赔
UserInfo UserInfo=userInfoResponse.toSuccessResponse().getUserInfo();
System.out.println(“主题:+userInfo.getSubject());
System.out.println(“电子邮件:+userInfo.getEmailAddress());
System.out.println(“Name:+userInfo.getName());
}
}