【发布时间】:2019-08-30 21:42:21
【问题描述】:
我已经使用 OWIN 和不记名令牌实现了身份验证,并且在用户登录时可以正常工作。
当调用 \Token URL 并将用户名/密码传递给它时,会给出令牌作为响应。但是我想将此令牌存储在数据库中,所以我可以在代码中获取令牌,而不是再次调用服务器吗?我无法获取票证或任何其他对象中生成的令牌的值。
public override Task GrantResourceOwnerCredentials(OAuthGrantResourceOwnerCredentialsContext context)
{
return Task.Factory.StartNew(() =>
{
var username = context.UserName;
var password = context.Password;
var userService = new UserService();
User user = userService.GetUserByCredentials(username, password);
if (user != null)
{
var claims = new List<Claim>()
{
new Claim(ClaimTypes.Name, user.userName),
new Claim("UserID", user.userName)
};
ClaimsIdentity oAutIdentity = new ClaimsIdentity(claims, Startup.OAuthOptions.AuthenticationType);
var ticket = new AuthenticationTicket(oAutIdentity, new AuthenticationProperties() { });
context.Validated(ticket);
}
else
{
context.SetError("invalid_grant", "Error");
}
});
}
我正在调试代码,但令人惊讶的是,access_token 似乎无处可见,只能在邮递员结果中获取。
【问题讨论】:
-
你用下面的方法试过了吗?