2
私はIUserTokenProviderインターフェイスをIdentityシステムに登録し、さらに認証に使用するように実装しようとしています。 なぜ私はウェブApiサーバのASP Webコアを使用してID 3を書くので、トークン認証。 障害は、私はトークンを生成する方法を知らないです。 IUserTokenProviderには2つの方法があります。1.トークンを生成します。2.トークンを検証します。 私はそれらの中に何を書いていますか?アルゴリズムは何ですか?アイデンティティ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();
ありがとう!それはより明確になった。 – user3752919