0

私はトークンベースの認証の初心者です。ユーザーを自分のサイトの特定のページに制限したい (認証を確認する) と、jwt がそれを実装する最良の方法であることがわかり、ここのチュートリアルに従いました: https://devdactic.com/restful-api-user-authentication-2 /ですが、ユーザーがページにアクセスするのをどのように制限できますか (ログインするように依頼します)? AuthInterceptorここで、著者は、認証部分のチェックを使用したと述べています。しかし、私は認証インターセプターと混同しています。ユーザーを制限する方法を説明できる人はいますか (コードの制限部分はサーバー側またはクライアント側であり、サーバー側の場合は でコード参照を使用できます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 (およびサーバーによって検証される有効な 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 に答える