2015-01-06 4 views
0

클라이언트에서 oauth2 프로토콜을 구현하는 "hello.js"라이브러리를 사용하여 타사 앱 (Google 및 Facebook)을 통해 인증 된 사용자의 전자 메일 주소를 얻을 수 있습니다.브라우저에서 인증 된 이메일 주소를 안전하게 서버로 전송하는 방법은 무엇입니까?

물론 이메일 주소를 HTTPS를 통해 서버로 보낼 수는 있지만 교환을 스푸핑하지 못하게하려면 어떻게해야합니까? 즉, 브라우저에서 수신 된 전자 메일 주소가 타사 응용 프로그램을 통해 인증 된 전자 메일 주소임을 서버가 어떻게 확신 할 수 있습니까?

아마도 이메일 주소는 "redirect_uri"로 전송 된 메시지의 어딘가에있을 것입니다.이 메시지는 클라이언트로가는 도중에 서버를 통과하지만, 그렇다면 찾을 수 없습니다. GET 또는 POST 매개 변수에 없습니다.

답변

0

"hello.js"의 저자 인 Andrew Dodson은 Gitter에서이 질문에 대한 답변을 충분히주었습니다. 그는 썼다 :

클라이언트 측 웹 앱이 토큰을 보낼 필요 다시 서버 (안녕하세요 ('페이스 북')로 로그인 후 찾을 getAuthResponse() access_token이를..). 이 토큰은 어디서나 사용하여 타사에 API 요청을 할 수 있습니다.

따라서 브라우저는 실제 이메일 주소를 서버로 보내지 않습니다. 대신 토큰을 보내면 서버는 토큰을 사용하여 해당 토큰과 연결된 전자 메일 주소를 타사 응용 프로그램에 요청합니다.