Frontend의 백엔드에서 OAuth 토큰을 사용할 수 있습니까?
-
23-12-2019 - |
문제
방금 Google의 Drendit 샘플 앱 in Java (
좋은 예입니다. 그러나 내가 알아 차리는 가장 큰 단점은 사용자가 드라이브에서 파일을 선택하려는 경우 (이전에 앱을 수행 할 수 있음에도 불구하고) 다시 로그인해야 할 때 사용자가 다시 로그인해야한다는 사실입니다.그것은 불편을 끼쳐 드려 죄송합니다.파일을 선택하면 JavaScript에서만 사용할 수있는 Google Picker API를 사용하여 수행됩니다.
은 내 백엔드와 프론트 엔드간에 인증 정보를 공유하고 싶습니다. Frondend에 백엔드에있는 OAuth 토큰을 전달할 수 있습니까?그렇다면, 그것을하는 것이 권장되는 방법이 있습니까?
해결책
예 완벽하게 괜찮습니다.@tydotg가 설명한대로 클라이언트에서 스누핑하는 것은 클라이언트 또는 서버에서 생성되었는지 여부에 관계없이 액세스 토큰이 스누핑 가능한 것과 관계없이 문제가되지 않습니다.
유일한 실제 챌린지는 올바르게 인증 된 사용자에게 토큰 만 다운로드하는지 확인하고 있습니다.이 작업을 수행하는 데 사용할 수있는 여러 가지 구성표가 있지만 예를 들어 : -
- 사용자는 서버 기반 OAuth를 사용하여 앱으로 인증합니다.
- 서버는 사용자 ID 또는 이메일을 세션 변수 에 저장합니다.
- 클라이언트가 토큰을 요청할 때 세션 사용자를 사용하여 토큰 를 생성합니다.
다른 팁
십자가 신원을 사용하여 다음을 달성하십시오 :
"Nofollow"> https://developers.google.com/accounts/docs/crossclientauth <./ P>
나는 당신이 할 수 있습니다 (나는 Java에 익숙하지 않다. 예를 들어, 레일에서는 쉽지 않을 것이다). 그러나 이것을 원하지 않는 이유는 보안 때문이다.
서버 측의 모든 것은 꽤 안전하고 클라이언트가 액세스 할 수 없습니다.그러나 클라이언트쪽에있는 것은 공정한 게임입니다.나는 요소를 검사 할 수 있었고, 내가 찾고있는 것을 알았다면 OAuth 토큰을 잡을 수 있습니다.