【发布时间】:2023-04-06 04:03:01
【问题描述】:
我正在尝试实现 IUserTokenProvider 接口以在身份系统中注册并进一步用于身份验证。 为什么要进行令牌认证,因为我使用 Identity 3 在 Asp Net Core 中编写 Web Api 服务器。 障碍是我不知道如何生成令牌。 IUserTokenProvider 有两种我需要的方法:1. 生成令牌 2. 验证令牌。 我在里面写什么?什么算法?
public class UserTokenProvider : IUserTokenProvider<AppUser>
{
public Task<bool> CanGenerateTwoFactorTokenAsync(UserManager<AppUser> manager, AppUser user)
{
throw new NotImplementedException();
}
public Task<string> GenerateAsync(string purpose, UserManager<AppUser> manager, AppUser user)
{
/* here logic to generate token */
string result = "generated token";
return Task.FromResult(result);
}
public Task<bool> ValidateAsync(string purpose, string token, UserManager<AppUser> manager, AppUser user)
{
/* validating token */
if (token == "generated token")
return Task.FromResult(true);
else return Task.FromResult(false);
}
}
并在 StartUp 类的 ConfigureServices 方法中注册我的提供程序:
services.AddIdentity<AppUser, IdentityRole>(options => {
options.User.RequireUniqueEmail = true;
})
.AddEntityFrameworkStores<UserDbContext>()
.AddTokenProvider<UserTokenProvider>("AuthToken")
.AddDefaultTokenProviders();
【问题讨论】:
标签: asp.net-web-api asp.net-core asp.net-identity access-token asp.net-core-1.0