gpt4 book ai didi

asp.net-core - 使用 UserManagerGenerateUserTokenAsync 创建带有额外数据的自定义 token

转载 作者:行者123 更新时间:2023-12-03 08:52:44 25 4
gpt4 key购买 nike

我正在使用 ASP.NET Core 2.2,我需要在我的应用程序中生成自定义 token 。

Asp.Net Core Identity UserManager 可以生成经典 token ,例如 EmailVerification,...

但它还有一种生成具有不同用途的代币的方法( MSFT Docs ):

public virtual System.Threading.Tasks.Task<string> GenerateUserTokenAsync (TUser user, string tokenProvider, string purpose);

我需要生成包含以下信息的 token :

  1. 用途 = AddUserToProject
  2. 用户 = 给定用户
  3. ProjectId = 应添加用户的项目 ID。
  4. RoleId = 项目中用户的角色 ID

在GenerateUserTokenAsync上我可以添加用户和目的...

但我不知道如何添加(3)和(4),例如ProjectId 和 RoleId。

我以后如何检索它,以便我可以实际执行该操作。

我应该怎么做?

最佳答案

您可以创建自定义 token 提供程序,然后指示 ASP.NET Core 使用它。创建一个实现 IUserTokenProvider<TUser, TKey> 的类。然后,您可以明确地使用它:

var token = await _userManager.GenerateUserTokenAsync(user, "MyCustomTokenProvider", purpose);

或者您可以将其子代入 ConfigureServices 中的任何或所有身份 token 提供商。 :

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

[1]:

关于asp.net-core - 使用 UserManagerGenerateUserTokenAsync 创建带有额外数据的自定义 token ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57911798/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com