如何验证OWIN生成的令牌来自生成它的用户?

时间:2018-03-08 10:23:26

标签: c# asp.net-mvc oauth-2.0 jwt owin

我正在使用OWIN生成访问令牌,该令牌在成功进行OTP验证后传递给用户。 我的担忧:

  1. 如果客户端1生成了有效令牌,并在标题中的后续请求中将其传递给我。

  2. 如果客户端2也生成了有效令牌,并在标题中的后续请求中将其传递给我。

    两个客户都有一个有效的令牌,但有一些到期时间。

  3. 现在问题是,如果客户端1使用客户端2令牌,那么我的[authorize]属性也会成功传递令牌并相应地发送响应。

    我想要停止。由于只有生成令牌的客户端才能使用该令牌。客户端2无法使用客户端1。

    由于

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验证所需内容的唯一方法,因为您无法验证用户与令牌,因为用户属于令牌。