如何在 wso2 api 管理器中获取用户的个人资料?

How to get user's profile in wso2 api manager?

我需要在 wso2 api 管理器中获取用户的个人资料,我该怎么做? 到现在为止,我已经完成获取访问令牌、刷新令牌和撤销令牌:

https://localhost:9443/oauth2/token --> access and refresh token
https://localhost:9443/oauth2/revoke --> revoke token

谢谢你的帮助。

如果您将 openid 定义为范围之一,那么您将能够使用 userinfo 端点来获取用户相关信息。

生成范围为 openid 的令牌

curl -k -d "grant_type=password&username=admin&password=admin&scope=openid" -H "Authorization: Basic NzhfQURZNGdBMWJ6djd0ZVc0Zk11VkpMM0xVYTpQWE55RmZ1ZjlmbkVhUW9NYksyaUxjTFE1dndh" https://localhost:9443/oauth2/token

使用该令牌请求用户信息

curl -k  -H "Authorization: Bearer 14e78b764c91a1f18b5566ddbd88c5ff" https://localhost:9443/oauth2/userinfo?schema=openid

默认情况下,响应将只包含子值。 {"sub":"admin@carbon.super"}

您可以通过在 API Manager

中的服务提供应用程序中配置声明来定义应发送哪些参数

为此登录碳管理控制台和select服务提供商应用程序

在声明配置下,您可以将电子邮件、姓氏和任何其他您需要的声明设置为 'Requested claims'

ex: http://wso2.org/claims/emailaddress for email

配置完成后,您将获得以下对先前请求的响应

{"sub":"admin@carbon.super","family_name":"adhikarinayake","email":"chamilaa@wso2.com"}