Javascript 使用yeoman generator angular搭建的angular种子进行用户身份验证的正确方法 情况
我使用yeoman生成器angularjs构建了应用程序,从而为我提供了一个干净的目录结构和框架结构。我只是在学习angularjs,使用yeoman是一种更干净的方式,soc已经基本实现 现在我遇到了一个问题,比如服务和工厂,我现在正在处理用户身份验证 大体上 目前我有两条路线,一条是Javascript 使用yeoman generator angular搭建的angular种子进行用户身份验证的正确方法 情况,javascript,angularjs,authentication,Javascript,Angularjs,Authentication,我使用yeoman生成器angularjs构建了应用程序,从而为我提供了一个干净的目录结构和框架结构。我只是在学习angularjs,使用yeoman是一种更干净的方式,soc已经基本实现 现在我遇到了一个问题,比如服务和工厂,我现在正在处理用户身份验证 大体上 目前我有两条路线,一条是/,另一条是/secured。我设置它是为了真正开始使用身份验证 我发现这篇文章是关于。我发现它真的很有趣,我想我可以理解它,我真的理解它,但我想我没有理解工厂和服务应该如何使用的一些基本知识 我现在拥有的 首先
/
,另一条是/secured
。我设置它是为了真正开始使用身份验证
我发现这篇文章是关于。我发现它真的很有趣,我想我可以理解它,我真的理解它,但我想我没有理解工厂和服务应该如何使用的一些基本知识
我现在拥有的
首先,我没有后端服务,因为应用程序马上就会失败,现在不需要编写服务,我只需要编写一个简单的php脚本,返回401
状态或200
,但现在不需要,我想先在客户端工作
在我的app.coffee
文件中
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
方法中创建了该函数。顺便说一句,他没有使用约曼,所以对我来说,事情很复杂
我认为检查loggedin状态是工厂或服务的工作,所以我想写一个这样的因素
angular.module('myApp')
.factory 'checkLoggedin', ($q, $timeout, $http, $location, $rootScope) ->
deferred = $q.defer()
$http.get('api/loggedin').success (user) ->
if user isnt '0'
$timeout(deferred.resolve, 0)
else
$rootScope.message = 'You need to be logged in.'
$timeout(
() -> deferred.reject(),
0
)
$location.url '/login'
正确的方法是什么?您可以使用http身份验证模块- 您只需在应用程序控制器级别侦听事件“auth login Required”,然后显示登录屏幕 我所做的(不是最好的方法)是在我的应用程序控制器中侦听此事件并重定向到登录路径-
$scope.$on('event:auth-loginRequired', function() {
$location.path('/login');
});
这并不能回答这个问题,但我会试着看一看