AWS "SDK for the browser"를 사용하여 일부 AWS 서비스에 대한 직접 호출을 수행하고 Google Plus를 사용하여 사용자 인증을 수행하려고합니다.AWS JavaScript SDK를 사용할 때 Google Plus 무기명 토큰을 새로 고치는 방법
초기 인증이 올바르게 작동하며 AWS의 Google Plus에서받은 베어러 토큰을 설정 한 후에 브라우저에서 직접 S3 호출을 수행 할 수 있습니다. 내 문제는 초기 사용자 토큰이 만료되고 S3에 대한 호출이 오류를 발생시키기 시작하는 긴 사용자 세션에서 발생합니다 (만료 된 액세스 토큰을 사용하고 있다는 오류).
AWS가 새로 고침 토큰에 대해 Google Plus 엔드 포인트를 호출하지 않고 내가 설정 한 초기 값을 계속 사용하는 것으로 의심됩니다.
그래서 AWS에서 설정할 수있는 완전히 새로운 베어러 토큰을 Google API에 보내도록 강제 할 수 있습니까? 전화가 걸리는 경우 :
var clientId = "<my client id>",
scope = "https://www.googleapis.com/auth/userinfo.profile https://www.googleapis.com/auth/userinfo.email";
gapi.auth.authorize({
client_id: clientId,
scope: scope,
immediate: true
}, function(r) { console.log(r.id_token) });
만료 된 경우에도 항상 동일한 무기명 토큰을받습니다. 그러나 페이지를 새로 고침하면 실제로 완전히 새로운 것을 얻습니다. 그래서 GAPI가 AWS에서 설정할 수있는 새로운 베어러 토큰을 강제로 제공 할 수있는 방법이 있습니다. 또는 새로 고침 토큰을 사용하도록 AWS SDK에 호출해야하는 메소드가 있습니까? 내가 지금처럼 auth.signIn
대신 auth.authorize
호출하는 경우 :
업데이트는 다음
gapi.auth.signIn({
clientid: clientId,
scope: scope,
cookiepolicy : 'single_host_origin',
response_type: 'id_token token gsession',
callback: loginToGoogle,
immediate: true
})
나는 새로운 id_token
얻을 수 있지만,이 종료하기 전에 몇 밀리 초 동안 성가신 로그인 팝업을 보여줍니다 그 자체. 팝업 창을 표시하지 않고 클라이언트에서 새로운 무기명 토큰을 얻는 다른 방법이 있습니까?