Rumah > Soal Jawab > teks badan
Bagaimanakah saya boleh menghalang pengguna daripada membuat operasi dan akses melebihi tahap pada halaman?
曾经蜡笔没有小新2017-05-15 16:52:50
Terdapat terlalu banyak kaedah Ia bergantung pada skala projek dan reka bentuk sistem anda Jika anda ingin mengehadkan kebenaran antara muka (seperti OAuth2), anda boleh mempertimbangkan perkara berikut:
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');
Jika ia adalah kebenaran penghalaan, maka ubah suai sedikit kod di atas dan ia juga boleh dicapai dengan menilai sesi.
Jika anda menggunakan ui-router
, anda boleh mempertimbangkan untuk menambahkan ayat ini pada app.js:
$rootScope.$on('$stateChangeStart', function(event, next) {
return Auth.isLoggedInAsync(function(loggedIn) {
if (next.authenticate && !loggedIn) {
return $location.path("/login");
}
});
});
Anda boleh merujuk artikel lain untuk cara melaksanakan kelas Auth tertentu:
http://blog.coding.net/blog/techniques-for-authentication-in-angular-j...