我使用yeoman生成器angularjs搭建应用程序,从而为我提供了一个干净的目录结构和框架结构。我只是在学习angularjs,使用自耕农是一种更干净的做事方式,而且几乎可以实现soc。
现在我遇到了服务和工厂等问题,我目前正在处理用户身份验证。
我目前有两条路线,一条是/
,另一条是/secured
。我进行了设置,以便我可以真正开始使用身份验证。
我发现了这篇关于authenticating a user的文章。我发现它真的很有趣,而且我认为我可以以某种方式理解它,而且我真的理解它,但我想我无法理解应该如何使用工厂和服务的一些基础知识。
首先,我没有后端服务,因为应用程序正确启动并且现在不需要编写服务,我可以编写一个简单的PHP脚本,返回401
状态或{{ 1}},但现在不需要,我想先在客户端工作。
在我的200
文件中
app.coffee
在文章中,它说创建一个检查用户是否登录的函数,并在codebase中在angular.module('myApp', [
'ngCookies',
'ngResource',
'ngSanitize',
'ngRoute'
])
.config ($routeProvider) ->
$routeProvider
.when '/',
templateUrl: 'views/home.html'
controller: 'HomeCtrl'
.when '/secured',
templateUrl: 'views/secured.html'
controller: 'SecuredCtrl'
resolve:
loggedin: checkLoggedin // this is the wrong one
.otherwise
redirectTo: '/'
.config ($httpProvider) ->
$httpProvider.interceptors.push('httpInterceptor')
方法中创建了该函数。顺便说一下,他没有使用自耕农,所以对我来说几乎让事情变得复杂。
我认为检查登录状态是工厂或服务的工作,所以我想为此写一个因素
config
这样做的正确方法是什么?
答案 0 :(得分:0)
您可以使用awesome angular-http-auth模块 - https://github.com/witoldsz/angular-http-auth
您需要做的就是在应用控制器级别监听事件'auth-loginRequired',然后显示登录屏幕。
我所做的(不是最好的方法)是在我的app控制器中监听此事件并重定向到登录路线 -
$scope.$on('event:auth-loginRequired', function() {
$location.path('/login');
});