Yeoman Generator Angular Fullstack 생성기로 생성 된 평균 스택 앱이 있습니다. 당신은 로그인하여 사이트에 액세스 할 수 있어야합니다.Express/Passport, AngularJS 및 ensureLoggedIn이 "/"url에서 작동하지 않는 인증 및 라우팅
을 ensureLoggedIn의 환매 특약은 내가로 리디렉션 해요 '/ 제품'으로 이동하려고하면 here
동안은, 로그 아웃 '/ 로그인'단지 벌금. 그러나 URL이 '/'또는 'localhost : 9000'인 경우 로그인하지 않은 사용자를 슬래시없이 리디렉션하는 문제가 있습니다.
로그인 화면이 아니고 로그인 화면에서 '/ login'을 '/'또는 ''로 변경하면 AngularJS의 'main'으로 보내 져서 로그인 한 것으로 취급됩니다. 세션을 인식했기 때문에 가정하니?) '/ products'또는 '/ users'까지 링크를 클릭 할 수 있습니다.
나의 현재 routes.js은 다음과 같습니다 : 나는 또한 경로로 이것을 시도했습니다
/**
* Main application routes
*/
'use strict';
var errors = require('./components/errors');
var auth = require('./controllers/auth');
var passport = require('passport');
var ensureLoggedIn = require('connect-ensure-login').ensureLoggedIn;
module.exports = function(app) {
// Insert routes below
// All undefined asset or api routes should return a 404
app.route('/:url(api|auth|components|app|bower_components|assets)/*').get(errors[404]);
app.route('/login').get(auth.login).post(auth.loginUser);
app.route('/logout').get(auth.logout);
// All other routes should redirect to the index.html
app.all('*', ensureLoggedIn('/login'));
app.route('/*').get(function(req, res) {
res.sendfile(app.get('appPath') + '/index.html');
});
};
:
app.route('/*').get(function(req, res) {
res.sendfile(app.get('appPath') + '/index.html');
});
어떤 응용 프로그램에 ensureLoggedIn 배치와 같은 동작을 갖고있는 것 같아요. 모든.
.config ($stateProvider, $urlRouterProvider, $locationProvider) ->
$httpProvider.interceptors.push('httpInterceptor')
$urlRouterProvider
.otherwise '/'
$stateProvider
.state 'main',
url: '/'
templateUrl: 'app/views/main/main.html'
controller: 'MainCtrl'
.state 'users',
url: '/users'
templateUrl: 'app/views/users/index.html'
controller: 'UsersController'
내가 말했듯이, 리디렉션가 '/ 사용자에 잘 작동 :
다음은 UI 라우터를 사용하여 각 측면에 내 라우팅의 조각입니다. 이것이 라우팅 문제인지 또는 인증 문제인지 확실하지 않습니다. 로그 아웃을 클릭하면 로그인 화면으로 들어가고 액세스가 제한되지만 '/'경로에 대한 액세스는 제한되지 않으므로 인증은 정상적으로 진행됩니다.
보기의 경우 login.jade는 실제로 서버 측에 있고 양식이 거기에서 처리됩니다. 404.jade를 제외하고 다른 모든보기는 클라이언트 측에 있고 ui-router를 사용하여 제공됩니다.
나는 기본적인 것을 간과하고있는 것처럼 느껴집니다. 또는 이것이 어떻게 함께 작동하는지 완전히 이해하지 못합니다. 어떤 도움이라도 좋을 것입니다.
편집 :
app.route('/')
.get(function(req, res) {
res.render('login');
});
그리고 '/'로에서 주를위한 UI 라우터의 URL을 변경 : 나는 app.route 전에 라우팅 ('로그인')을 변경 한 시도
한 가지 '/본관'.
이것은 여전히 index.html을 가로 채고 로깅 한 것이므로 작동하지 않았습니다. 또한 res.redirect를 routes.js에 로그인하려고 시도했지만 리디렉션하지 않았습니다.