Angular & Express를 사용하여 사용자를 로그인하는 적절한 방법은 무엇입니까?
Facebook을 사용하여 로그인하고 로그인 여부에 따라 커스터마이즈된 아이템이 있는 페이지를 표시하고 싶은 심플한 웹 사이트를 구축하고 있습니다.즉, 로그인이 되어 있지 않은 경우는, 몇개의 정보가 표시됩니다만, 로그인하고 있는 경우는, 유저 정보에 근거해 다른 정보가 표시됩니다.
저는 passportjs 페이스북 모듈, Express, Angular를 사용하고 있습니다.여권은 올바르게 실장되어 있다고 생각합니다만, 1) 사용자가 로그인하고 있는지 어떤지를 확인하는 방법, 2) Angular & Express를 사용하여 사용자 상태에 따른 뷰를 표시하는 베스트 프랙티스입니다.여기서 예를 살펴보았습니다만, 이것이 Angular(https://github.com/jaredhanson/passport-facebook))를 사용하는 것이 적절하다고는 생각하지 않습니다.
감사합니다!
@wpalanuk 답변을 완료하려면 인증과 http를 처리하는 서비스 또는 공장을 만들어야 합니다.서버가 송신하는 응답을 대행 수신해, 유저의 로그 유무를 판별한다(staus 코드 401을 체크).
Express 파트의 경우 서버 측 인증을 처리하기 위해 멋진 여권 노드 모듈을 사용해야 합니다.
자세한 것은, https://vickev.com/#!/article/authentication-in-single-page-applications-node-sys-syslogjs 를 참조해 주세요.
이 기사는 정말 훌륭합니다, Brad Green(Google for Angular 엔지니어링 디렉터)JS) 이 투고를 보내 주세요.
도움이 되길 바랍니다.
Angular의 보안에 대해 더 알고 싶으시면 문의해 주시면 감사하겠습니다.
저는 node.js와 express를 사용하지 않고 play! 프레임워크에서 secureocial을 사용하지만 프로세스는 비슷하다고 생각합니다.
서버에 접속하여 사용자 로그인 상태를 확인하는 서비스를 작성한 후 이 변수를 저장해야 합니다.그런 다음 사용자의 로그인 상태를 인식하거나 변경해야 하는 각 컨트롤러에 이 서비스를 주입할 수 있습니다.
이 블로그는 제가 구현한 블로그입니다.http://blog.brunoscopelliti.com/deal-with-users-authentication-in-an-angularjs-web-app
서비스는 다음과 같습니다.
services.factory('UserService', [function() {
var sdo = {
isLogged: false,
username: ''
};
return sdo;
}]);
다음으로 컨트롤러에서 사용자를 로그인하는 예를 나타냅니다.
var User = UserService
scope.login = function() {
var config = { /* ... */ } // configuration object
$http(config)
.success(function(data, status, headers, config) {
if (data.status) {
// succefull login
User.isLogged = true;
User.username = data.username;
}
else {
User.isLogged = false;
User.username = '';
}
})
.error(function(data, status, headers, config) {
User.isLogged = false;
User.username = '';
});
}
블로그 기사를 읽어보시길 권합니다.이 기사에는 더 자세한 내용과 관련 기사가 몇 개 있습니다.
그런 다음 User.isLogged 변수를 사용하여 다른 요소를 숨기거나 표시할 수 있으며 사용 가능한 경로를 결정할 수도 있습니다.
언급URL : https://stackoverflow.com/questions/18805054/what-is-the-proper-way-to-log-in-users-using-angular-express
'programing' 카테고리의 다른 글
모든 ACF 필드를 Wordpress REST API에 표시하는 방법 페이지와 사용자 지정 포스트타이프 (0) | 2023.03.27 |
---|---|
내보낸 릴레이 컨테이너 입력 방법 (0) | 2023.03.27 |
리모트 wp-admin이 localhost로 리다이렉트 되는 이유는 무엇입니까? (0) | 2023.03.27 |
GSON에서의 범용 타입의 시리얼화 해제 (0) | 2023.03.27 |
스프링 보안 설정 - Http Security vs Web Security (0) | 2023.03.27 |