2013-07-21 4 views
1

나는 node.jspassport.js 문서를 사용하는 여권을 가지고 있습니다.NodeJS Passport : 역할을 인증 할 수 있습니까?

제 질문은 다른 역할에 대해 LocalStrategy을 사용하여 다르게 인증 할 수 있습니까?

나는 일반 사용자와 관리자가 있으며, 물론 일부 페이지는 관리자 만 사용할 수 있습니다.

답변

4

나는 내 자신의 질문에 대답하는 데 5 분이 남았습니다.

사용자 엔티티 데이터는 여권과 함께 req.user에서 찾을 수 있습니다.

그래서 당신은 당신이 사용자가 관리자 또는 일반 사용자 등의 경우 기억할 수있는 방식으로 데이터베이스를 설계해야이

if (req.user.role == "Admin") { 
    // render page here 
} else { 
    // redirect somewhere else 
} 
1

을 사용할 수 있습니다 (즉 당신은 데이터를 유지해야 할 것이다).

이제이 지역 전략을 사용하는 방법에 관해서? 사용자 이름과 비밀번호로 새 페이지를 요청할 때마다 로그인하도록 사용자를 찾는 경우가 아니라면 현지 전략에 필요하다고 생각합니다. 당신은 세션을 사용해야합니다, 당신은 특별한 특별한 req.role 사용자 역 직렬화 방법에 추가 할 수 있습니다.

이제 모든보기에 대해 사용자의 역할이보기를 허용하는지 여부를 확인해야합니다. 이것을 확인하는 맞춤 전략을 정의 할 수 있습니까? 이 전략에서는 req.user.role을 확인하고 페이지 당 특정 역할을 허용합니다.

이 정보가 도움이 되었기를 바랍니다.

관련 문제