2015-01-28 3 views
2

나는 Passport를 사용하여 GitHub로 성공적으로 인증하도록 Node.js에 백 엔드 코드를 설정했습니다. jsonwebtoken을 사용하여 토큰을 생성 할 수 있습니다. 그러나 OAuth의 흐름 때문에 프런트 엔드를 관리하는 데 문제가 있습니다.Angular.js로 OAuth 토큰 기반 인증 처리?

그들이 입력 한 이메일과 비밀번호는, 뷰가있을 곳이 양식을 기반으로 한 경우이 같은 비트 :이 흐름에

<form ng-submit="login()"> 
    <input ng-model="user.email" type="email" name="email" id="email" ng-required /> 
    <input ng-model="user.password" type="password" name="password" id="password" ng-required /> 
    <button type="submit">Log in</button> 
</form> 

login()를 사용할 수있는 컨트롤러는 요청을 만들려면 성공한 경우 currentUser 및 토큰을 포함하는 객체를 라우팅하고 다시 수신하고 콜백으로 리디렉션합니다.

OAuth의 흐름으로 인해 여기에 약간의 문제가 있습니다. OAuth에서는 사용자를 사이트에서 리디렉션하고 현재 사용자가 서버에 설정 한 node.js 쪽의 콜백 URL로 돌아갑니다. 나는이 과정에 각진 프론트 엔드를 연결하는 방법을 모른다.

각도에서 어떻게 "github으로 로그인"버튼을 클릭하면 $window.sessionStorage.token 변수와 $rootScope.currentUser 개체를 업데이트 할 수 있습니까?

+0

을'urlparsing하여 그 PARAMS 읽기 – chovy

답변

2

귀하의 OAuth 링크는 _blank의 목표를 가지고, 또는 OAuth를 완료 할 때 ..., 당신은 그것의 '상태를 업데이트 할 선행하는 스파 프로그램을 알릴 수 있습니다 창문의 코드에서 window.opener.foo(...)를 호출 할 수 있습니다 새 창에서 로그인 window.open를 사용한다 ...

0

서버 사이트에서 로그인하여 프런트 엔드로 리다이렉트하고 싶다고 생각합니다.

서버로 이동하는 api hit을 생성하면 node.js에 대해 passport-github로 사용할 수있는 github 화면이 채워지고 로그인이 완료되면 데이터가 제공됩니다. 매개 변수에 github 데이터가있는 웹 사이트 페이지로 리디렉션하십시오.

다음 페이지의로드에

는 '<'() openWindow의 "NG 버튼 클릭 => GitHub의 로그인을