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

时间:2019-10-29 13:06:22

标签: c# asp.net-core .net-core asp.net-core-2.2 asp.net-core-identity

使用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 = "someuser@name.com" },
  }
}

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

/invite?token=some_token

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

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

问题

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

令牌中应包含哪些信息?

我应该如何验证呢?

1 个答案:

答案 0 :(得分:0)

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

使用UserManager,您可以为多种目的生成令牌。

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

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

Reference To Documentation

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