나는 하루 종일이 문제를 처리해 왔으며 무엇이 잘못되었는지를 알 수 없습니다.javascript : Token이있는 Google Oauth 교차 클라이언트 인증이 만료되었습니다.
문제없이 작동하는 javascript 용 Google Api 클라이언트를 사용하는 애플리케이션이 있습니다. 이제 서버 측에서 무언가를하고 싶습니다. 조금 연구 한 결과 클라이언트 측에서 토큰을 사용하는 것이 백엔드에서 setAccessToken
메소드를 사용하는 것이 었습니다.
JSON.stringify(gapi.auth.getToken())
사용)로 내 토큰 객체를 전송 시도하고 일단 내가 인증을 요구하는 백엔드 API 호출을 수행하려고, 나는 다음과 같은 오류 얻을 : 그래서, 조금 의아해
The OAuth 2.0 access token has expired, and a refresh token is not available. Refresh tokens are not returned for responses that were auto-approved.
을 나는 다음과 같은
{
"issued_to": "client_id",
"audience": "client_id",
"user_id": "user_id",
"scope": "https://www.googleapis.com/auth/youtube.readonly https://www.googleapis.com/auth/youtube.upload https://www.googleapis.com/auth/userinfo.email https://www.googleapis.com/auth/plus.me",
"expires_in": 1465,
"email": "user_email",
"verified_email": true,
"access_type": "online"
}
그래서 내가 토큰이 벌금과 유효 알고 반환 구글의 엔드 포인트에 토큰 사용하여 컬을 veryfing보십시오. 다음과 같이 내 코드가 설치되는 방식이다 (대한 편집 됨 :
<?php
// The token JSON is not inline, it comes from another source directly from the client side, but this is how it looks
$token_json = '{"state":"","access_token":"TOTALLY_VALID_ACCESS_TOKEN","token_type":"Bearer","expires_in":"3600","scope":"https://www.googleapis.com/auth/youtube.readonly https://www.googleapis.com/auth/youtube.upload https://www.googleapis.com/auth/userinfo.email https://www.googleapis.com/auth/plus.me","client_id":"CLIENT_ID","g_user_cookie_policy":"single_host_origin","cookie_policy":"single_host_origin","response_type":"token","issued_at":"1415583001","expires_at":"1415586601","g-oauth-window":{},"status":{"google_logged_in":false,"signed_in":true,"method":"PROMPT"}}';
$OAUTH2_CLIENT_ID = 'CLIENT_ID';
$OAUTH2_CLIENT_SECRET = 'CLIENT_SECRET';
$client = new Google_Client();
$client->setClientId($OAUTH2_CLIENT_ID);
$client->setClientSecret($OAUTH2_CLIENT_SECRET);
$client->setAccessToken($token_json);
$youtube = new Google_Service_YouTube($client);
try{
/* Random code goes here */
// Auth Exception here.
$insertRequest = $youtube->videos->insert("status,snippet", $video);
} catch (Google_Exception $e) {
var_dump($e->getMessage());
}
내가 오프라인 액세스 또는 뭔가를 설정해야합니까 나는 로그인 과정이 자바 스크립트에 있어야합니다 요구 사항의를 다시 너무 기회가? 백엔드에서 로그인 흐름
은 내가 부족 있나요
"postmessage"를 리디렉션 URL로 사용하면 중요한 정보였습니다. – tomasmcguinness