【问题标题】:Angular.js auth service: Wait for resource responseAngular.js 身份验证服务:等待资源响应
【发布时间】:2014-09-05 23:56:08
【问题描述】:

我为我的应用创建了一项服务,用于获取 PHP 会话信息以验证用户是否已登录。该服务的代码如下。

angular.module('omApp')
  .factory 'Auth', ['AuthResource', '$rootScope', '$location', (AuthResource, $rootScope, $location) ->
    user = AuthResource.get()

    # TODO: Setup permissions in database and load them
    # permissions = AuthResource.get()
    Auth =
      user: user
      signedIn: ->
        user.id > 0
      logout: ->
        window.location = '/login/login.php'

    $rootScope.signedIn = ->
      Auth.signedIn()
    $rootScope.authUser = Auth.user

    return Auth
]

对于需要登录用户的控制器,我想做类似if not signedIn() then logout() 的操作。我的问题是,这段代码在我的资源实际加载之前运行,所以无论如何,我都会被重定向到登录屏幕。我知道 AuthResource.get() 会产生一个承诺,但在这种情况下,我不知道如何使用它并提供签名和注销功能。

【问题讨论】:

    标签: angularjs authentication coffeescript


    【解决方案1】:

    我的建议是保留在$rootScope isLoggedIn 属性中,并与他们一起工作,分配您的响应值,并在您的控制器中使用

    $rootScope.$watch('isLoggedIn',function(){
     // your logic goes here
    })
    

    【讨论】:

    • 我仍然有同样的问题,它在授权响应来自 PHP 之前执行检查。
    猜你喜欢
    • 2019-07-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-12
    • 2020-11-12
    • 2020-03-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多