2

我試圖執行IUserTokenProvider接口在身份系統中註冊並進一步用於身份驗證。 爲什麼令牌認證,因爲我寫Web Api服務器在Asp Net Core使用身份3。 障礙是我不知道如何生成令牌。 IUserTokenProvider有2個方法我需要:1.生成令牌2.驗證令牌。 我在裏面寫什麼?算法是什麼?如何在Identity 3中實現IUserTokenProvider中生成令牌?

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); 
    } 
} 

ConfigureServices啓動類的方法註冊我的供應商:

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

回答