0

我是基于令牌的身份验证的新手。我想将用户限制在我网站上的特定页面(检查他的身份验证),并看到 jwt 是实现它的最佳方式并遵循此处的教程:https ://devdactic.com/restful-api-user-authentication-2 /,但我怎么能限制用户访问页面(要求他登录)?在这里,作者说他使用AuthInterceptor了 which 检查身份验证部分。但我对身份验证拦截器感到困惑。任何人都可以解释我们如何限制用户(例如代码的限制部分是服务器端还是客户端,如果是服务器端,我可以在其中提供代码参考node.js)吗?

4

1 回答 1

1

我在每次请求来自服务器的数据时附加一个 JWT。代码如下所示:

    return {
      request: function(config) {
        var jwt;
        if(isApiRequest(config.url)) {
          config.url = baseUrl + '/api/v1/' + config.url;
          jwt = store.get(JWT);
          if(jwt)
            config.headers.Authorization = "Bearer "+jwt;
        }
        return config;
      }
    };

但是,您要做的是确定用户是否有 JWT(以及一个有效的 - 将由服务器验证),如果有,他们可以访问某些页面。

我想说这可以通过监视$stateChange事件来完成:

$rootScope.$on('$stateChangeStart', function(evt, toState, toParams, fromState, fromParams) {
     var jwt = store.get('JWT');          
     if(!jwt)
       $state.go('go-back-to-login-view');
    }); 
于 2016-06-03T09:40:23.220 回答