如何在用户注册期间生成OWIN承载令牌

Ily*_*dik 4 .net c# asp.net-mvc owin bearer-token

我已经使用OWIN和bearer token实现了身份验证,当用户尝试登录时,它可以正常工作.所以我转到特殊的\ Token url并提供用户名/密码并获得此令牌作为响应.但我也有注册用户功能,理想情况下,我想在注册用户后立即获得此令牌.我可以在Web服务器内部进行\ Token,或者在客户端注册后执行\ Token,但我希望有一个解决方案,我可以做类似的事情

public Token RegisterUser(RegisterUserRequest request)
{
    // Registration here
    return OAuthProvider.GenerateToken(username, password)
}
Run Code Online (Sandbox Code Playgroud)

有可能做那样的事吗?

Den*_*her 5

我花了很长时间才弄清楚所以我想我会在这里添加它.

您可以使用OAuthAuthorizationServerOptions对象的AccessTokenFormat上的Protect功能手动生成令牌,假设您已在启动类中将其设置为静态,否则它将为null.

AuthenticationTicket ticket = new AuthenticationTicket(claimsIdentity, new AuthenticationProperties());
string token = Startup.OAuthServerOptions.AccessTokenFormat.Protect(ticket);
Run Code Online (Sandbox Code Playgroud)

似乎是一个非常奇怪的地方放置令牌生成逻辑.

无论如何,您可以根据需要使用令牌,可能会将其附加到您的传出标头或响应对象.