현재 프로젝트의 경우 Cloud Endpoints와 Cloud Storage API를 동시에 사용하고 싶습니다. Google Cloud Endpoints 및 Google Cloud Storage 용 OAUTH와 gapi 클라이언트 라이브러리를 동시에 사용하는 방법
구글의 예를 틱택 토 응용 한이 같은 id_token로 access_token과를 설정해야한다고 클라우드 엔드 포인트에 대한 인증
( github repository 참조) access_token과는var token = gapi.auth.getToken();
// Use id_token instead of bearer token
token.access_token = token.id_token;
그러나 일단 id_token으로 설정하면 더 이상 다른 Google apis를 사용할 수 없습니다. 제 경우에는 Cloud Storage API입니다. 그 이유는 현재 액세스 토큰이 유효하지 않기 때문입니다. 예를 들어 클라우드 저장소 API는 잘못된 자격증 명을 반환합니다. access_token이 id_token으로 설정되기 전에 access_token은 ya29.AHES6ZTjklghkljghlkjfghkljsrdölizuklhlfghI_UTfghdfghCg
과 같습니다. 그것은 정말 길기 때문에 여기에 게시하고 싶지 않은 id_token으로 대체됩니다. 내가 생각할 수있는
두 솔루션은 다음과 같습니다 별도의 인증 객체 및 토큰
- 복사 GAPI 개체, 각. 클라우드 종점 용 id_token과 나머지 용 ID_token을 사용하십시오 (이 경우에도 객체를 복사 할 수 없습니다.)
- auth 토큰을 어딘가에 기억하고 API (클라우드 종점/다른 api) 나는 (이것은 아마 동기화가 필요하고 다소 엉망이 될 것이다)
나는이 문제에 대한 해결책과 가능한 해결 방법에 매우 흥미가있다.
이 문제가 발생하면 아래 답변과 의견을 읽으십시오. 작업을 완료하면 실제로이 질문이 여기에 더 많은 질문임을 이해하게 될 것입니다. How do I test Cloud Endpoints with Oauth on devserver
누군가 내부에서 검색어를 검색 할 경우를 대비하여 질문을 남겨 두겠습니다.
'gapi.auth.authorize' 기능을 사용하고 있습니까? 그렇다면'scope' 매개 변수를 사용하여 여러 API에 토큰 범위를 지정할 수 있습니다. – jterrace
예, 저는 userinfo.email과 cloud storage의 두 범위에서'gapi.auth.authorize'를 사용합니다. 권한 부여 기능은'gapi.client.oauth2.userinfo.get을 수행하는 콜백()를 호출합니다. 실행 (기능 (RESP) { \t \t 경우 (! resp.code) { \t \t \t VAR 토큰 = gapi.auth. getToken(); \t \t \t token.access_token = token.id_token; \t \t \t gapi.auth.setToken (토큰)' 하지만 access_token과 id_token가 설정되면, 기억 API 내게 잘못된 오류 자격을 준다 반면 clound는 잘 작동합니다. – konqi