반응형
AngularJs - '로그인한' 사용자에 대한 접근을 제한하는 최선의 방법
만들고 있는 앱의 로그인 시스템을 설정하는 데 어려움을 겪고 있습니다.
사용자가 로그인하거나 로그아웃할 때 쿠키를 설정할 수 있습니다.사용자가 로그인되어 있는지 모든 보기를 테스트하는 것은 그다지 우아한 솔루션이라고 생각하지 않으며, 여기저기 페이지가 갈라진 틈으로 떨어질 수도 있습니다(다소 큰 앱입니다).
경로 변경을 어떻게든 가로채서 사용자가 로그인되어 있는지 확인하고, 그렇지 않으면 로그인/사용자 만들기 페이지로 보내는 것이 가장 좋은 방법이라고 생각합니다.몇 가지 방법을 찾았지만 공식적으로 기록된 것은 없는 것 같습니다.실제 사례에서 이런 방식을 사용해 본 사람이 있는가요? 그리고 효과적이었습니까?
내 경로 파일은 다음과 같습니다.
'use strict';
app.config(['$routeProvider', function ($routeProvider) {
$routeProvider
// LOGIN
.when('/User/LoginUser', {templateUrl: 'views/user/login.html',controller: 'loginCtrl'})
....... more routes here.......
// DEFAULT
.otherwise({redirectTo: '/'});
}]);
도움이나 제안, 문서화된 실제 사례에 대한 요점을 알려주시면 대단히 감사하겠습니다!
다음 예제를 기본으로 사용하여 제안한 대로 경로 변경을 차단하고 그에 따라 작업할 수 있습니다.
$rootScope.$on('$routeChangeStart', function (event, next) {
var userAuthenticated = ...; /* Check if the user is logged in */
if (!userAuthenticated && !next.isLogin) {
/* You can save the user's location to take him back to the same page after he has logged-in */
$rootScope.savedLocation = $location.url();
$location.path('/User/LoginUser');
}
});
추가하기isLogin: true
로그인 페이지의 경로 정의에 다음과 같이 입력합니다.
$routeProvider
// LOGIN
.when('/User/LoginUser', {templateUrl: 'views/user/login.html',controller: 'loginCtrl', isLogin: true})
프로젝트에 행운을 빌어요!
내 의견:
<?php if (!$_SESSION['user_id'] { forward(/user/access); }) ?>
그리고 여기 당신의 각진 앱이...
언급URL : https://stackoverflow.com/questions/18918579/angularjs-best-way-to-limit-access-to-logged-in-users
반응형
'programing' 카테고리의 다른 글
jQuery 또는 pure JS를 사용하여 모든 체크박스를 리셋하는 방법? (0) | 2023.09.20 |
---|---|
Entity Framework가 여러 개의 테이블 이름을 생성하지만 보기에서 하나의 테이블 이름이 필요합니까? (0) | 2023.09.20 |
Groovy XmlSlurper 대 XmlParser (0) | 2023.09.20 |
PHP 파일이 이미지인지 확인 (0) | 2023.09.15 |
카트, 체크아웃 및 보기 순서에서 제품 사용자 정의 필드 및 표시 값 설정 (0) | 2023.09.15 |