OAUTH 2.0 코드를 호출하는 모든 URI를 PHP 라이브러리 또는 개발자 콘솔 자격증 명으로 리다이렉트하는 페이지에 넣었습니다. 슬래시없이.Google OAuth2 모든 가능한 URI가 콘솔에있을 때 redirect_uri_mismatch
이 오류가 표시되는 페이지의 정확한 URI는 콘솔에 있습니다. 현재 URI에 대한 이야기가 아닌가, 발신 URI인가? 콘솔에 있기 때문에 여전히 이해가되지 않습니다.
이 오류가 나타나는 URI와 콘솔에있는 URI의 유일한 차이점은 끝에 # url 조각이 있다는 것입니다. 그러나 콘솔에 추가하려고하면 오류가 발생합니다. 조각이 허용되지 않기 때문에 가정합니다.
나는이 조각은 어디에서 오는가 모르겠지만, 내가 그렇게처럼 내 인증 코드를 얻을 후 필자는 PHP 헤더의 위치를 변경하여 페이지에 무엇입니까 :의
return header('Location: https://website.com/m/?mail=tokened');
URI를 오류가있는 페이지와 위의 코드 행은 다음과 같습니다. https://website.com/m/?mail=tokened#
이고 콘솔에있는 URI는 https://website.com/m/?mail=tokened
및 https://website.com/m?mail=tokened
입니다.
업데이트 : (2) {[ "오류"] => 문자열 (21) "redirect_uri_mismatch"[ "ERROR_DESCRIPTION"] => 문자열
배열 : 여기
내가 무엇입니까 정확한 오류입니다 (11)이 페이지에서 "잘못된 요청"}:
: 여기 https://keyreader.xyz/m?mail=tokened
는 dev에 콘솔 자격 증명의 스크린 샷입니다 여기
그리고내가 사용하고있는 코드입니다 :
<?php
session_start();
if(isset($_GET['mail']) && $_GET['mail']==='approved'){
setcookie('authCode', $_GET['code'], time()+(60*60), '/');
return header('Location: https://keyreader.xyz/m/?mail=tokened');
}
if(isset($_GET['mail']) && $_GET['mail']==='tokened'){
require_once 'php/vendor/autoload.php';
$client = new Google_Client();
$client->setAuthConfig('php/client_secret.json');
$client->setAccessType('offline');
$client->setApprovalPrompt('force');
$client->addScope(array('email', 'profile'));
var_dump($client->fetchAccessTokenWithAuthCode(urldecode($_COOKIE['authCode'])));
} ?>
그래서 내가 인증 코드를 가져 오는하고 내가 생각했기 때문에 쿠키에 있음을 저장한다는 사실 그 값으로 URL의 코드 매개 변수 다른 코드의 모든 것이 URL이 매번 다르므로 모든 것이 리디렉션 오류의 원인이었습니다. 콘솔에 넣을 수 없습니다. 그런 다음 url에 code 매개 변수가없는 동일한 페이지로 리디렉션하고 액세스 토큰을 가져옵니다.
확실하지 않지만 나에게 일어난 일입니다. 리디렉션 URI를 설정 한 후 클라이언트 자격 증명 json 파일을 다시 다운로드하고 다시 시도 할 수 있습니까? – Morfinismo
개발자 콘솔에 코드 및 설정 스크린 샷을 게시하십시오. http://stackoverflow.com/help/mcve – DaImTo
@DaIm 사과에 대해, 나는 오류의 의미를 오해하고 싶었지만 코드와 스크린 샷으로 내 질문을 업데이트했습니다. 희망이 당신이 나를 도울 수 있습니다. – wordSmith