我正在使用Web Api 2并实现了基于自定义令牌的身份验证。它工作正常,但我希望得到一些额外的属性值作为响应。即使我添加了新的声明并添加了新的属性来获取它们的值,但我仍然只得到三个响应值,即'access_token',“token_type”和“expires_in”。如何获得更多的值作为回应。 这是我的代码:
public override async Task GrantResourceOwnerCredentials(OAuthGrantResourceOwnerCredentialsContext context)
{
if(context.UserName == "user" && context.Password=="user")
{
var identity = new ClaimsIdentity(context.Options.AuthenticationType);
identity.AddClaim(new Claim(ClaimTypes.Name, context.UserName));
identity.AddClaim(new Claim(ClaimTypes.Role, "Administrators"));
identity.AddClaim(new Claim("MyClaim", "I don't know"));
var props = new AuthenticationProperties(new Dictionary<string, string>
{
{ "name", "John" },
{ "surname", "Smith" },
{ "age", "40" },
{ "gender", "Male" }
});
var ticket = new AuthenticationTicket(identity, props);
context.Validated(ticket);
}
else
{
context.SetError("Invalid_Grant", "Provided username and password is incorrect");
return;
}
}
这是我得到的输出
{
“access_token”:“xxxxx”, “token_type”:“bearer”, “expires_in”:86399 }
答案 0 :(得分:0)
其他声明和属性不应该在响应中显示为附加字段,而是在access_token本身中编码。 如果您正在使用JWT(JSON Web令牌),则可以在https://jwt.io/查看生成的令牌的内容 只需将您的令牌粘贴到左侧窗口,然后查看已解码的令牌,包括右侧的所有声明。