2015-01-01 4 views
1

다음 this tutorial, 나는 node.js, 패스포트 및 각도로 간단한 백엔드 인증을 만들 수있는 방법을 배우려하고 있습니다.각도 : 로그인 한 사용자 이름을 얻으시겠습니까?

로그인하려는 사용자가이고 각도가 어떻게 표시됩니까?

내 질문이 의미가 있는지 잘 모르겠다. 그렇다면 분명하지 않다면 설명해주십시오.

service.factory('Users', ['$http', function($http){ 
     return { 
      get: function(){ 
       return $http.get('/api/users'); 
      } 
     } 

노드에

function getUsers(res){ 
    Users.find(function(err, users) { 
     if (err) 
       res.send(err) 
      res.json(users); 
    }); 
}; 

내가 모든 사용자를 얻을 수있는 서비스를 만든

는 .. 그래서 나는 데이터베이스에 사용자를 등록 할 수 있습니다 내가 그들을 얻을 수 있습니다. 로그 인한 사용자가 게시하거나 읽을 수 있도록 로그인 한 사용자와 데이터베이스의 사용자를 비교해야합니다.

미리 감사드립니다.

+0

당신은 내가 실제로/사용자/데이터 API를 만들었지만 EJS를 사용하지 않고 로그온 한 사용자를 확인할 수 있습니다 – harishr

답변

0

이미 존재하지 않는 API를 작성해야합니다. 사용자 자격 증명에 대한 JSON 객체를 반환하는 /user/data 끝점과 같은 것입니다. 이 방법은 SPA (단일 페이지 응용 프로그램) 아키텍처에 더 적합합니다.

나중에 Angular로 액세스 할 수있는 문서에 전역 개체를 넣어서 수행 할 수도 있습니다. 같은 뭔가 (사용 EJS 경우)

<script> 
    <% var globalUser = req.user %> 
</script> 

globalUser 변수에 액세스 할 수 그래서 각도.

+0

몇 가지 코드를 표시 할 수 있습니다.? – Mar

+0

위 내가 당신에게 옵션을주었습니다. API 또는 템플릿 사용 (EJS 또는 기타). API를 사용하는 경우 다른 AJAX와 마찬가지로 API를 호출 한 다음 $ rootScope에 사용자 자격 증명을 저장하거나 응용 프로그램의 아키텍처에 따라 달라집니다. –

0

자습서를 더 자세히 읽어야합니다. 미들웨어의

function isLoggedIn(req, res, next) { 

    // if user is authenticated in the session, carry on 
    if (req.isAuthenticated()) 
     return next(); 

    // if they aren't redirect them to the home page 
    res.redirect('/'); 
} 

설명 : -

그것은에 따르면, 먼저해야 인증을 처리 할 미들웨어 콜백을 만들

isLoggedIn : 경로 미들웨어를 사용하여, 우리가 보호 할 수 있습니다 프로필 섹션 경로. 해당 경로에 액세스하려면 사용자가 로그인해야합니다. 그들이 http://localhost:8080/profile에 액세스하려고 그들이 로그인하지 않은 경우 isLoggedIn 기능을 사용하면, 우리는 다시 홈 페이지에 사용자를 걷어차 것

과를 마지막으로 - 당신이 보호하고자하는 경로에 그것을 사용할 수 있습니다. :

app.get('/profile', isLoggedIn, function(req, res) { 
    res.render('profile.ejs', { 
     user : req.user // get the user out of session and pass to template 
    }); 
}); 
+0

답변을 주셔서 감사합니다. 각도 컨트롤러에 로그인 한 사용자 이름이나 이메일을 전달하는 방법은 무엇입니까? – Mar

관련 문제