Javascript 要求用户先登录-web
我正在开发一个只有两个页面的网站Javascript 要求用户先登录-web,javascript,jquery,angularjs,web,ionic-framework,Javascript,Jquery,Angularjs,Web,Ionic Framework,我正在开发一个只有两个页面的网站 1.登录 2.主页 我用的是有角度的框架 app.config(['$routeProvider', function ($routeProvider) { $routeProvider // Home .when("/login", {templateUrl: "partials/login.html", controller: "LoginCtrl",cache:false}) .when("/newNotification"
- 1.登录
- 2.主页
app.config(['$routeProvider', function ($routeProvider) {
$routeProvider
// Home
.when("/login", {templateUrl: "partials/login.html", controller: "LoginCtrl",cache:false})
.when("/newNotification", {templateUrl: "partials/about.html", controller: "NewNotificationCtrl",cache:false})
.otherwise({
redirectTo: '/login'
});
}]);
但是,当有人在没有登录的情况下键入website/newNotification时,它正在打开该页面。如何限制用户仅在直接打开第二个页面URL时登录页面?您可以使用stateChangeStart
使用
localStorage
是我最喜欢的解决方案。当用户登录时,在localStorage
中保存用户名
和密码
,并重定向到您的主页。如果他们注销或关闭页面,您将删除本地存储
,加载主页时,您将检查本地存储
项:
if(localStorage.getItem("username")!=null && localStorage.getItem("password")!=null){
driverLogin();
}
一个可能的解决方案是在打开每个页面之前检查用户是否登录,如果用户未登录,则重定向到登录页面
app.run(function($rootScope, $location) {
$rootScope.$on( "$routeChangeStart", function(event, next, current) {
if (!$rootScope.isLoggedIn) {
// no logged user, redirect to /login
$location.path("/login");
}
}
});
在身份验证服务中:
app.service('AuthService', function($rootScope, $http) {
return {
this.login = function() {
// Send $http request for login
$http.post(url, loginData)
.success(function(res) {
$rootScope.isLoggedIn = true;
})
.error(function() {
// Handle request error
});
}
};
});
这取决于身份验证系统的工作方式。(如果用户未登录,除非服务器拒绝提供机密数据,否则这将非常无用。)登录主页的一部分是必要的,因为我在主页中使用用户名和邮件id。当我直接点击主页url时,它将邮件和用户名显示为null nulladd httpInterceptor,并检查用户是否登录,我相信$stateChangeStart与angular ui路由器相关,而不是$routeProvider和angular Route。您也可以将$routeChangeSuccess用于ngRoute
app.service('AuthService', function($rootScope, $http) {
return {
this.login = function() {
// Send $http request for login
$http.post(url, loginData)
.success(function(res) {
$rootScope.isLoggedIn = true;
})
.error(function() {
// Handle request error
});
}
};
});