我嘗試創建一個登錄系統,但我希望會話可以從PHP代碼中獲取。如果會話登錄是false
或null
它將重定向到登錄頁面。 這裏我跑AngularJS代碼:如何從PHP獲取會話到AngularJS進行重定向
app.run(["$rootScope", 'adminService', '$location', function($rootScope, adminService, $location) {
$rootScope.$on("$routeChangeStart", function() {
$location.path('/login');
});
}]);
路由代碼:
app.config(function($routeProvider){
$routeProvider.when('/', {
templateUrl: 'welcome.html'
}).when('/administrator', {
templateUrl: './part/administrator.html',
controller: 'adminPageControl'
}).when('/administrator/:id_admin', {
templateUrl: './part/addit-administrator.html',
}).when('/alternatif', {
templateUrl: './part/alternatif.html',
controller: 'alternatifPageControl'
}).when('/alternatif/:id_alternatif', {
templateUrl: './part/addit-alternatif.html'
}).when('/skala', {
templateUrl: './part/skala.html',
controller: 'skalaPageControl'
}).when('/skala/:id_skala', {
templateUrl: './part/addit-skala.html'
}).when('/kriteria', {
templateUrl: './part/kriteria.html',
controller: 'kriteriaPageControl'
}).when('/kriteria/:id_kriteria', {
templateUrl: './part/addit-kriteria.html'
}).when('/klasifikasi', {
templateUrl: './part/klasifikasi.html',
controller: 'klasifikasiPageControl'
}).when('/klasifikasi/:id_klasifikasi', {
templateUrl: './part/addit-klasifikasi.html'
}).when('/analisis', {
templateUrl: './part/topsis.php',
controller: 'analisisPageControl'
}).when('/login', {
templateUrl: './login.html'
}).when('/logout', {
template: 'logout'
}).otherwise({
redirectTo: '/'
});
});
PHP函數會話代碼:
function logincheck(){
return $_SESSION['authid'];
}
logincheck();
你應該建立在你的後端的唯一的會話標識,而不直接解析PHP會話狀態到您的客戶端。請記住,AngularJS是爲SPA設計的。因此,使您的客戶端通過使用API與後端進行通信。例如一個RESTful API。一旦用戶通過客戶端登錄,返回一個唯一的會話令牌給客戶端。在任何安全的數據HTTP請求上放置並驗證該令牌。看看oAuth處理,它也一樣。 – lin
如何製作令牌? –
例如'$ token = md5('what-ever-you-want');' – lin