angular.js - Angular中怎麼處理安全性?
曾经蜡笔没有小新
曾经蜡笔没有小新 2017-05-15 16:50:50
0
1
595

我怎麼在頁面中讓使用者不能做出超過等級的操作和存取?

曾经蜡笔没有小新
曾经蜡笔没有小新

全部回覆(1)
曾经蜡笔没有小新

方法太多,看你的專案規模和系統設計了,如果要限制介面權限(如OAuth2),可以考慮下面這種:

app.factory('authInterceptor', function($q, $cookieStore, $location) {
  return {
    request: function(config) {
      config.headers = config.headers || {};
      if ($cookieStore.get('token')) {
        config.headers.Authorization = 'Bearer ' + $cookieStore.get('token');
      }
      return config;
    },
    responseError: function(response) {
      if (response.status === 401) {
        $location.path('/login');
        $cookieStore.remove('token');
      }
      return $q.reject(response);
    }
  };
});

$httpProvider.interceptors.push('authInterceptor');

如果是路由權限,那麼對上面的程式碼稍加修改,透過判斷session也是可以實現的。
如果你用了ui-router,可以考慮在app.js加入這句話:

$rootScope.$on('$stateChangeStart', function(event, next) {
  return Auth.isLoggedInAsync(function(loggedIn) {
    if (next.authenticate && !loggedIn) {
      return $location.path("/login");
    }
  });
});

具體Auth類中怎麼實現或許可以參考另一篇文章:
http://blog.coding.net/blog/techniques-for-authentication-in-angular-j...

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板