Я реализовал аутентификацию с 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 нигде не виден, только получая его в результатах почтальона.