Mig*_*ura 2 usermanager asp.net-core asp.net-core-identity asp.net-core-2.2
我正在使用 ASP.NET Core 2.2,我需要在我的应用程序中生成自定义令牌。
Asp.Net Core Identity UserManager 可以生成经典令牌,例如 EmailVerification,...
但它还有一种生成具有不同用途的令牌的方法(MSFT Docs):
public virtual System.Threading.Tasks.Task<string> GenerateUserTokenAsync (TUser user, string tokenProvider, string purpose);
Run Code Online (Sandbox Code Playgroud)
我需要生成包含以下信息的令牌:
在GenerateUserTokenAsync上我可以添加用户和目的......
但我不知道如何添加(3)和(4),例如ProjectId和RoleId。
我怎样才能稍后检索它以便我可以实际执行该操作。
我该怎么做?
您可以创建自定义令牌提供程序,然后指示 ASP.NET Core 使用它。创建一个实现IUserTokenProvider<TUser, TKey>. 然后,您可以明确地使用它:
var token = await _userManager.GenerateUserTokenAsync(user, "MyCustomTokenProvider", purpose);
Run Code Online (Sandbox Code Playgroud)
或者您可以将其分入以下位置的任何或所有身份令牌提供商ConfigureServices:
services.AddIdentity<IdentityUser, IdentityRole>(o => {
o.Tokens.PasswordResetTokenProvider = nameof(MyCustomTokenProvider);
// rinse and repeat for other token providers you want to change
// see: https://learn.microsoft.com/en-us/aspnet/core/security/authentication/identity-configuration?view=aspnetcore-2.2#tokens
})
.AddTokenProvider<MyCustomTokenProvider>(nameof(MyCustomTokenProvider));
Run Code Online (Sandbox Code Playgroud)
[1]:
| 归档时间: |
|
| 查看次数: |
4992 次 |
| 最近记录: |