2017-12-14 3 views
0

와 JWT + Laravel 사교계 :의 OAuth 매개 변수 내가 무엇을 달성하고자하는

안전하게 단일 페이지 응용 프로그램를 사용하여 사용자가 다른 소셜 미디어에 자신의 계정을 연결할 수 있습니다. 내 사용자 인증 방법으로 JWT을 SPA을 사용 및 그 을 활용하고

: 내가 뭐하는 거지

. 나는이 같은 Laravel 사교계으로 OAuth를 호출에 JWT 토큰을 전달하고있다 :

return Socialite::driver($provider) 
    ->with(['provider' => $provider, 'token' => $token]) 
    ->redirectUrl($redirectUri) 
    ->stateless() 
    ->redirect(); 

를 내가 토큰을 기반으로 사용자를 얻을 콜백에. 이 메서드를 사용하면 타사 공급자가 JWT 토큰에 액세스 할 수 있습니다. 어느 것이 안전하지 않은가.

내 질문 (들) :

이 작업을 수행 할 수있는 더 좋은 방법이 있나요? 나는 어떤 종류의 해시 + 소금 + 비밀을 사용해야합니까?

+0

JWT 토큰의 페이로드는 무엇입니까? 왜 사회적 미디어 계정을 인증하기 전에 JWT 토큰을 발급했는지 궁금합니다. – Ben

+0

사용자가 사이트에 로그인 할 때 토큰이 발행됩니다. 사용자는 로그인 한 상태에서 다른 공급자에게 계정을 연결하도록 선택할 수 있습니다. 페이로드는 꽤 표준 JWT입니다. 무슨 뜻인지 모르겠다. – Fredrik

+0

하지만 제 3 자 공급자에게 JWT 토큰을 전달하는 이유는 무엇입니까? – Ben

답변

1

JWT을 확인해야합니다.

JSON 웹 토큰은 대표 주장 안전하게 두 당사자 사이 을위한 개방형 산업 표준 RFC 7519 방법입니다.

JWT 토큰 세 부분 header, payloadverify signature로 구성한다.

무국적 인증을 사용하고 있으며 사용자를 인증하는 유일한 방법은 JWT 토큰을 사용하는 것입니다. 리디렉션 후 사용자를 인증하려면 응용 프로그램의 사용자 아이디가 들어있는 페이로드를 작성하고 타사 공급자에게 전달해야합니다. 그러면 리디렉션 할 때 JWT 토큰이 다시 전달됩니다.

제 3 자 공급자에게 JWT 토큰을 전달하는 데 문제가 없지만 페이로드에 중요한 데이터가 포함되어서는 안된다는 점에 유의하십시오. 페이로드가 어떻게 든 스니핑되면 해커가 페이로드를 변경하려고하면 확인 서명이 도움이되고 응용 프로그램이 토큰을 확인할 수 없으므로 응용 프로그램이 예외를 throw하므로 해를 끼치 지 않습니다.

서명은 JWT를 보낸 사람이 그것과 메시지가 길을 따라 변경되지 않았습니다 수 있도록 말한다 누구인지 확인하는 데 사용됩니다.

관련 문제