내 REST 서비스에서 사용자를 인증하는 방법에 대해 고심하고 있습니다. Google 로그인 (안드로이드, 즉)을 사용할 계획입니다. 나는 내 서버에서 사용자를 인증하는 방법을 알 수 없다. (사용자의 신원을 확인하는 것 외에는) 어떤 권한도 갖고 싶지 않습니다. 내가 원하는 것은 요청을 받았을 때 사용자가 자신이 말하는 사람인지 확인하는 것입니다.Google을 사용하여 사용자 인증
제 생각에는 사용자가 로그인하여 Google에서 토큰을 얻은 다음 그의 요청에 따라 그의 신원을 확인하는 데 사용할 서버에 토큰을 보냅니다. 그러나 내가 읽은 것으로부터 사용자는 자신의 요청을 JWT (json 웹 토큰)로 인코딩 한 다음 Google 서버와 직접 대화하지 않고 신원을 확인하는 데 사용합니다. 내가 제대로 이해 했니? 구글의 documentation에
, 당신이 오프라인 액세스를 필요로하지 않는 경우, 액세스 토큰을 검색하고 보안 연결을 통해 서버에 보낼 수
을 말한다. 서버의 OAuth 2.0 클라이언트 ID없이 범위를 지정하여 GoogleAuthUtil.getToken()을 사용하여 직접 액세스 토큰을 얻을 수 있습니다.
그러나 서버가 토큰으로 무엇을해야하는지는 설명하지 않습니다.
그게 내가 원하는 부분이야. 토큰의 유효성을 검사하는 방법 (그리고 사용자의 신원을 인증하는 방법)을 파악할 수 없었습니다. 그러나 위조 방지 토큰을 사용해야하는지 알고 계시지 만 [here] (https://developers.google.com/+/web/signin/server-side-flow#step_2_create_an_anti-request_forgery_state_token) 문서에 나와 있습니다. – Nepoxx
예, 'state'는 RECOMMENDED REQUIED가 아니지만이 매개 변수는 사이트 간 요청 위조를 방지하기 위해 사용되어야합니다 (SHOULD). –