我正在使用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 时,我会获取具有给定令牌的记录。
根据该信息,我需要执行必要的操作,例如将用户添加到组中。
问题
我应该如何创建唯一的令牌?
应该在令牌中包含哪些信息?
以及我应该如何验证它?
Guid.NewGuid()
2. None 3. 通过检查它是否在数据库中(并将其设置为过期/已使用)主要基于个人观点。