问题描述
我有一个网络应用程序,它使用 Xero.NetStandard.oauth2client
包来允许使用 Xero 进行身份验证。
一旦用户被重定向回我的应用程序,我就会使用 IXeroClient.RequestAccesstokenAsync
方法将他们的代码交换为 IXeroToken
对象,这允许我按预期调用 Xero API。
我不知道该怎么做,而且在官方文档中似乎找不到的一件事是,我如何从 {{1} } 对象。
根据标准,信息在 IXeroToken
属性中编码为 JWT 字符串,但我不确定如何在没有额外依赖的情况下从中获取信息。
解决方法
内置的 IdToken
类可以反序列化 System.IdentityModel.Tokens.Jwt.JwtSecurityToken
负载。
IdToken
包含令牌中的所有声明。
相关类型有:
-
new JwtSecurityToken(accessToken.IdToken).Claims
- 用户的电子邮件 -
email
- 用户的 ID (guid) -
xero_userid
- 用户的名字 -
given_name
- 用户的姓氏
权利要求的存在显然以设置的适当范围为条件。