소셜로그인 GITHUB를 따라해 보고 있는데요.
http://myapp.dev:8000/social/github 를 하면
TOO_MANY_REDIRECT가 뜨길래
라우팅을 변경해서 확인해 보니
아래와 같이 URL이 오고 있습니다.
http://myapp.dev:8000/social/github?error=redirect_uri_mismatch&error_description=The+redirect_uri+MUST+match+the+registered+callback+URL+for+this+application.&error_uri=https%3A%2F%2Fdeveloper.github.com%2Fv3%2Foauth%2F%23redirect-uri-mismatch&state=ZFD6mf8O7kOkGAlO2b6kf13NkxtVZcrWjySAIC6K
URI_MISMATCH라고 뜨는데
뭐가 잘못된 건지 모르겠습니다.
HOST 파일에는 127.0.0.1 myapp.dev가 설정되어 있는 상태이고
GIT 허브에서는
Homepage URL : http://myapp.dev:8000
Authorization callback URL : http://myapp.dev:8000/social/github
1. web.php파일
Route::get('social/{provider}', ['as' => 'social.login','uses' => 'SocialController@execute',]);
2. SocialController.php 파일
public function execute(Request $request, $provider){ // code 필드가 있고 없음에 따라 로직을 분리한다. if (! $request->has('code')) { return $this->redirectToProvider($provider); }
return $this->handleProviderCallback($provider);}
위의 2.SocialController 에서 $request→has('code') 구문에서 분기하는 걸로 알고 있습니다.
GitHub에서 code 파라미터 값이 있다면 무한 REDIRECT 하지는 않을 걸로 보이나
문제는 GitHub에서 준 응답이 에러라서 정상적으로 동작하지 않는 걸로 보이는데
이게 왜 그런지 모르겠어서 질문 드렸습니다.
제가 놓친게 무엇인지 알려주세요.
.env 설정 파일에서 GITHUB_CALLBACK URL 값에 오타가 있었습니다. 그 때문에 발생한 문제였네요.
오타는 나의 원수
calback url 은 깃헙에서 로그인 처리 후 사용자를 되돌려 보내는 주소인데, callback url 에 소셜 로그인 url을 입력하셨기 때문에 무한 redirect 가 되고 있는 것입니다.
질문 내용을 수정하여 내용 보강하였습니다.
소셜로그인 GITHUB를 따라해 보고 있는데요.
http://myapp.dev:8000/social/github 를 하면
TOO_MANY_REDIRECT가 뜨길래
라우팅을 변경해서 확인해 보니
아래와 같이 URL이 오고 있습니다.
http://myapp.dev:8000/social/github?error=redirect_uri_mismatch&error_description=The+redirect_uri+MUST+match+the+registered+callback+URL+for+this+application.&error_uri=https%3A%2F%2Fdeveloper.github.com%2Fv3%2Foauth%2F%23redirect-uri-mismatch&state=ZFD6mf8O7kOkGAlO2b6kf13NkxtVZcrWjySAIC6K
URI_MISMATCH라고 뜨는데
뭐가 잘못된 건지 모르겠습니다.
HOST 파일에는 127.0.0.1 myapp.dev가 설정되어 있는 상태이고
GIT 허브에서는
Homepage URL : http://myapp.dev:8000
http://myapp.dev:8000/social/github
1. web.php파일
Route::get('social/{provider}', [
'as' => 'social.login',
'uses' => 'SocialController@execute',
]);
2. SocialController.php 파일
public function execute(Request $request, $provider)
{
// code 필드가 있고 없음에 따라 로직을 분리한다.
if (! $request->has('code')) {
return $this->redirectToProvider($provider);
}
return $this->handleProviderCallback($provider);
}
위의 2.SocialController 에서 $request→has('code') 구문에서 분기하는 걸로 알고 있습니다.
GitHub에서 code 파라미터 값이 있다면 무한 REDIRECT 하지는 않을 걸로 보이나
문제는 GitHub에서 준 응답이 에러라서 정상적으로 동작하지 않는 걸로 보이는데
이게 왜 그런지 모르겠어서 질문 드렸습니다.
제가 놓친게 무엇인지 알려주세요.