创建并验证邀请代码/令牌

问题描述 投票:-1回答:1

使用ASP.NET Core,我正在创建一个系统来邀请用户加入组,获得免费积分,...

[邀请用户加入组时,我创建了一个邀请,并保存在数据库中:

令牌与其他信息一起保存在数据库中:

Invitation invitation = new Invitation {
  InvitationType = "JoinGroup",
  Completed = false,
  Expiry = DateTime.Now.AddDays(4),
  Token = some_token,
  Parameters = new List<Parameter> { 
    new Parameter { Name = "GroupId", Value = 22 },
    new Parameter { Name = "RoleId", Value = "Admin" },
    new Parameter { Name = "Email", Value = "[email protected]" },
  }
}

然后我发送带有URL的电子邮件:

/invite?token=some_token

[当用户访问URL时,我获得了具有给定令牌的记录。

例如,利用这些信息,我可以做任何事情,例如,将用户添加到组中。

问题

我应该如何创建唯一令牌?

我应该在令牌中包含哪些信息?

我应该如何验证呢?

c# asp.net-core .net-core asp.net-core-2.2 asp.net-core-identity
1个回答
0
投票

ASP.NET Core身份提供了用于出于不同目的生成令牌的功能。

使用UserManager可以出于多种目的生成令牌。

可用的方法之一是UserManager.GenerateUserTokenAsync(TUser,String,String)。

您可以使用UserManager.VerifyUserTokenAsync(TUser,String,String,String)方法来验证令牌。

Reference To Documentation

以下链接可帮助您入门:Identity Tokens

© www.soinside.com 2019 - 2024. All rights reserved.