使用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时,我得到了具有给定令牌的记录。
利用这些信息,我可以做任何事情,例如,将用户添加到组中。
问题
我应该如何创建唯一令牌?
令牌中应包含哪些信息?
我应该如何验证呢?
答案 0 :(得分:0)
ASP.NET Core Identity提供了用于出于不同目的生成令牌的功能。
使用UserManager,您可以为多种目的生成令牌。
可用的方法之一是UserManager.GenerateUserTokenAsync(TUser,String,String)。
您可以使用UserManager.VerifyUserTokenAsync(TUser,String,String,String)方法来验证令牌。
以下链接可帮助您入门: Identity Tokens