Ruby on rails 使用Desive(rails)和;有棱角的
我目前有一个移动应用程序,您可以在其中创建问题,并查看其他人在您所在位置周围创建的问题列表 移动应用程序正在与rails服务器对话并正确创建问题,我已经介绍了rails&Desive的身份验证 在我的Ruby on rails 使用Desive(rails)和;有棱角的,ruby-on-rails,angularjs,devise,ionic-framework,Ruby On Rails,Angularjs,Devise,Ionic Framework,我目前有一个移动应用程序,您可以在其中创建问题,并查看其他人在您所在位置周围创建的问题列表 移动应用程序正在与rails服务器对话并正确创建问题,我已经介绍了rails&Desive的身份验证 在我的controllers/app.js文件中,我存储了一个本地变量isLoggedIn,默认设置为false。加载应用程序时,我检查变量是否为true,如果为true,则将用户发送到app.issues。否则,用户将被发送到app.auth.login $scope.$storage = $local
controllers/app.js
文件中,我存储了一个本地变量isLoggedIn
,默认设置为false。加载应用程序时,我检查变量是否为true,如果为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');
}
});
这是我的js
文件夹中的rootapp.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');
});
我有一种逐渐减弱的感觉,我忽略了一些相当琐碎的事情。即使rails服务器被擦除并且系统中根本没有用户,应用程序也始终会登录到console.logs。应用程序应该将用户重定向到app/auth/login
,但决不这样做。每当我在浏览器中键入此URL时,它也会将我重定向到app/issues
页面
如有任何想法或意见,将不胜感激 如果您在前端使用API集成,那么最好使用而不是designe
gemdesigne\u-token\u-auth
也是designe
,尽管对designe
进行了一些修改以使其与API一起工作