我正在使用OWIN生成访问令牌,该令牌在成功进行OTP验证后传递给用户。 我的担忧:
如果客户端1生成了有效令牌,并在标题中的后续请求中将其传递给我。
如果客户端2也生成了有效令牌,并在标题中的后续请求中将其传递给我。
两个客户都有一个有效的令牌,但有一些到期时间。
现在问题是,如果客户端1使用客户端2令牌,那么我的[authorize]
属性也会成功传递令牌并相应地发送响应。
我想要停止。由于只有生成令牌的客户端才能使用该令牌。客户端2无法使用客户端1。
由于
答案 0 :(得分:0)
好的,你可以这样做:
为用户生成令牌时获取用户ip
var ip = HttpContext.Current.Request.UserHostAddress
将IP保存在地图表user | ip | token中 现在,对于每个请求,您可以通过添加自定义授权属性来验证IP是否属于用户
public class CheckIpAuthorize : AuthorizeAttribute
{
protected override bool AuthorizeCore(HttpContextBase httpContext)
{
//here you can go to your map table and validate if the IP
//and User match
return true;
}
这是您通过IP验证所需内容的唯一方法,因为您无法验证用户与令牌,因为用户属于令牌。