使用护照jwt进行身份验证

时间:2016-06-02 20:21:35

标签: angularjs passport.js jwt restful-authentication express-jwt

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

1 个答案:

答案 0 :(得分: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(并且有效的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');
    });