如何在Identity 3中实现IUserTokenProvider时生成令牌



我正在尝试实现IUserTokenProvider接口,以便在身份系统中注册并进一步用于身份验证。为什么要进行令牌身份验证,因为我使用Identity 3Asp-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);
    }
}

并且在ConfigureServicesStartUp类的方法i中注册我的提供商:

services.AddIdentity<AppUser, IdentityRole>(options => {
            options.User.RequireUniqueEmail = true;
        })
            .AddEntityFrameworkStores<UserDbContext>()
            .AddTokenProvider<UserTokenProvider>("AuthToken") 
            .AddDefaultTokenProviders();

正如在另一篇SO文章中所解释的,IUserTokenProvider与令牌身份验证完全无关。

我建议阅读这些其他问题,了解有关如何在ASP.NET Core中发布自己的访问令牌的更多信息:

  • ASP.NET Core 1.0 Web API中的简单JWT身份验证
  • ASP.NET 5中的Web API身份验证
  • 配置授权服务器终结点

相关内容

  • 没有找到相关文章

最新更新