2017-10-21 16 views
1

여기서 많은 질문은 서버 측의 Facebook access token의 유효성 검사 프로세스에 대한 것입니다. 나는 어떻게 아직도 안전한지 혼란 스럽다?인증 : 서버 측에서 Facebook 사용자 액세스 토큰 유효성 검사?

내 클라이언트와 서버의 흐름은 다음과 같습니다 클라이언트 측에서 Mobile SDK를 사용하여

  1. 사용자 Continue with Facebook.
  2. Facebook은 User access token을 고객 측에 반환합니다.
  3. 서버 끝점은 user access token (POST 메서드를 통해)을 받고 Graph API를 사용하여 access_token의 유효성을 검사합니다. 해커 endpoint 알아보고 해킹 끝점 새로운 access_token 전달하면 인증 된 사용자의 경우
  4. 은 (시간 이내) 한편
  5. 응답
  6. JWT인가 토큰을 리턴한다.

5th 포인트가 실행되면 어떻게됩니까? POST 매개 변수를 해킹하기는 어렵지만 앱을 디 컴파일 한 후 클래스 파일 (적어도 android apk의 경우)을 볼 수 있습니다. 이 경우 서버는 위조 된 요청을 인식하지 않으며 추가 호출을 위해 항상 JWT Authorization 토큰을 반환합니다.

Facebook access_token의 유효 기간은 60 일입니다. 유효성 검증 끝점 시점에 추가 보안 계층을 제공하여 요청이 응용 프로그램에서만 발생하는지 확인해야합니까?

facebook user access_token은 사용자가 로그인을 요청할 때마다 항상 변경됩니까?

어떤 종류의 도움이라도 괜찮습니다. 감사합니다

+0

기본 인증을 말할 수 있습니다 : 그것은에 access_tokenapp_token을 통과 확인합니다. 또는 개발자가 아닌 다른 사람이 사용할 수없는 인증 헤더. –

+0

@KhushalChouhan 기본 인증은 매개 변수를 일반 텍스트로 전송하기 때문에 안전하지 않습니다. –

+0

나는 그것을 몰랐다. 정보 출처를 제공 할 수 있습니까? –

답변

1

해결 방법 :

access_token 항상 앱에 속하는 것 생성됩니다. 거의 자신의 인증 메커니즘을 사용할 필요가

https://graph.facebook.com/debug_token? 
access_token=ACCESS_TOKEN 
&app_token=APP_TOKEN