я новичок в angular ui-router и хотел бы добавить страницу входа в свое приложение, так что это мой код
var app = angular.module('myApp', ['ui.router']);
app.config(function($stateProvider, $urlRouterProvider) {
$stateProvider
.state("login", {url:"/login",module: 'public',templateUrl: 'partials/login.html', controller: 'loginCtrl'})
.state("home", {url:"/home", module: 'private',templateUrl: 'partials/home.html', controller: 'homeCtrl'})
.state("home.client", { url:"/client", parent: 'home', module: 'private',templateUrl:"pages/client.html", controller:'clientCtrl' })
.state("home.facture", { url:"/facture", parent: 'home', module: 'private',templateUrl:"pages/facture.html", controller:'factCtrl' })
.state("home.etat", { url:"/etat", parent: 'home', module: 'private',templateUrl:"pages/etat.html", controller:'etatCtrl' });
$urlRouterProvider.otherwise("/login");
});
app.run(function($rootScope, $location, loginService){
var routespermission=['/home']; //route that require login
$rootScope.$on('$stateChangeStart', function(){
if( routespermission.indexOf(location.path()) !=-1)
{
var connected=loginService.islogged();
connected.then(function(msg){
if(!msg.data) $location.path('/login');
});
}
});
});
и это мои услуги
app.factory('loginService', function($http, $location, sessionService){
return{
login:function(data,scope){
var $promise=$http.post('data/user.php',data); //send data to user.php
$promise.then(function(msg){
var uid=msg.data;
if(uid){
sessionService.set('uid',uid);
$location.path('/home/etat');
}
else {
$location.path('/login');
}
});
},
logout:function(){
sessionService.destroy('uid');
$location.path('/login');
},
islogged:function(){
var $checkSessionServer=$http.post('data/check_session.php');
return $checkSessionServer;
}
}
});
app.factory('sessionService', function($http){
return{
set:function(key,value){
return sessionStorage.setItem(key,value);
},
get:function(key){
return sessionStorage.getItem(key);
},
destroy:function(key){
$http.post('data/destroy_session.php');
return sessionStorage.removeItem(key);
}
};
});
Проблема в том, что если я пытаюсь войти в свое приложение, используя любое имя пользователя и пароль, оно всегда входит в систему … и, если я выхожу, я могу вернуться на домашнюю страницу простым нажатием на предыдущую кнопку 🙁
Можете ли вы помочь мне, пожалуйста … я только начал использовать angularJs с одной недели.
Если это может помочь, это используемые файлы PHP
//user.php
$user=json_decode(file_get_contents('php://input'));
if($user->mail=='admin' && $user->pass=='admin')
session_start();
$_SESSION['uid']=uniqid('ang_');
print $_SESSION['uid'];
//check_session.php
session_start();
if( isset($_SESSION['uid']) ) print 'authentified';
//destroy.php
session_id('uid');
session_start();
session_destroy();
session_commit();
Задача ещё не решена.
Других решений пока нет …