使用Devise登录身份验证(rails)&角

时间:2016-02-08 15:53:26

标签: ruby-on-rails angularjs devise ionic-framework

我目前有一个移动应用程序,您可以在其中创建问题,并查看其他人围绕您所在位置创建的问题列表。

移动应用正在与rails服务器通话并正确创建问题,我有followed this guide覆盖身份验证与Rails&设计。

在我的controllers/app.js文件中,我有一个存储isLoggedIn的局部变量,默认设置为false。加载应用程序时,我检查变量是否为true,如果是,则将用户发送到app.issues。否则,用户将被发送到app.auth.login

$scope.$storage = $localStorage.$default({
  isLoggedIn: false
});

$scope.$watch('$storage.isLoggedIn', function() {
    if ($scope.$storage.isLoggedIn){
      console.log('is logged in');
      $state.go('app.issues');
    }
    else {
      console.log('isnt logged in');
      $state.go('app.auth.login');
    }
  });

以下是我的app.js文件夹中的根js文件。

angular.module('orangecone', ['ionic', 'orangecone.controllers', 'orangecone.services', 'ngCordova', 'ngStorage', 'ngResource'])

.run(function($ionicPlatform) {
  $ionicPlatform.ready(function() {
    // Hide the accessory bar by default (remove this to show the accessory bar above the keyboard
    // for form inputs)
    if (window.cordova && window.cordova.plugins && window.cordova.plugins.Keyboard) {
      cordova.plugins.Keyboard.hideKeyboardAccessoryBar(true);
      cordova.plugins.Keyboard.disableScroll(true);

    }
    if (window.StatusBar) {
      // org.apache.cordova.statusbar required
      StatusBar.styleDefault();
    }
  });
})

.value('Constants', {
  serverUrl: 'http://localhost:3000/'
})

.config(function($stateProvider, $urlRouterProvider, $httpProvider) {

  $httpProvider.defaults.withCredentials = true;

  $stateProvider

  // setup an abstract state for the tabs directive
    .state('app', {
    url: '/app',
    abstract: true,
    templateUrl: 'templates/tabs.html'
  })

  .state('app.issues', {
    url: '/issues',
    views: {
      'app-issues': {
        templateUrl: 'templates/issues.html',
        controller: 'IssuesCtrl'
      }
    }
  })

  .state('app.issue', {
    url: '/issues/:issueId',
    views: {
      'app-issues': {
        templateUrl: 'templates/issue.html',
        controller: 'IssueCtrl'
      }
    }
  })

  .state('app.auth', {
    url: '/auth',
    abstract: true,
    templateUrl: 'templates/auth/tabs.html'
  })

  .state('app.auth.login', {
    url: '/login',
    views: {
      'login': {
        templateUrl: 'templates/auth/login.html',
        controller: 'AuthCtrl'
      }
    }
  })

  .state('app.auth.register', {
    url: '/register',
    views: {
      'register': {
        templateUrl: 'templates/auth/register.html',
        controller: 'AuthCtrl'
      }
    }
  })


  // if none of the above states are matched, use this as the fallback
  $urlRouterProvider.otherwise('/app/auth/login');

});

我感觉自己忽略了一些相当微不足道的事情。应用程序始终是console.logs logged in,即使擦除了rails服务器并且系统中根本没有用户。应用程序应该将用户重定向到app/auth/login但永远不会。每当我在浏览器中输入此URL时,它也会将我重定向到app/issues页面。

任何想法或意见将不胜感激。

0 个答案:

没有答案
相关问题