내 웹 사이트에서 Google 로그인 버튼을 사용하고 있습니다. 나는 사용자를 인증하고 사용자의 프로필 정보를 얻을 수 있습니다.Google 로그인 사용 중 추가 사용 권한
이 나는이 Integrating Google Sign-In into your web app
<div id="my-signin2" ></div>
gapi.signin2.render('my-signin2', {
'scope': 'profile email',
'width': 240,
'height': 50,
'longtitle': true,
'theme': 'light',
'onsuccess': this.onSuccess,
'onfailure': this.onFailure
});
onSuccess(googleUser) {
var id_token = googleUser.getAuthResponse().id_token;
var name = googleUser.getBasicProfile().getName());
var email = googleUser.getBasicProfile().getEmail());
var imageUrl = googleUser.getBasicProfile().getImageUrl());
}
onFailure(error) {
}
지금 나는 그가 구글을 사용하여 권한을 부여하면서 사용자의 연락처를 읽을 필요가 따랐다.
그래서 연락처를 가져 오기위한 전 범위 모든 일이 잘 작동 https://www.googleapis.com/auth/contacts.readonly
gapi.signin2.render('my-signin2', {
'scope': 'profile email https://www.googleapis.com/auth/contacts.readonly',
'width': 240,
'height': 50,
'longtitle': true,
'theme': 'light',
'onsuccess': this.onSuccess,
'onfailure': this.onFailure
});
을 추가했습니다. gmail을 사용하여 사용자가 권한을 부여한 후 사용자에게 권한 화면을 표시하고 권한을 요청합니다.
하지만 사용자가 권한을 거부하면 사용자를 로깅하지 않습니다. 그가 부인해도 사용자가 로그인하고 싶습니다. 연락을받지 않으면 확인을합니다.
나는 (사용자가 이메일을 승인 한 후)에 대한 requesting additional scopes.
var options = new gapi.auth2.SigninOptionsBuilder(
{'scope': 'https://www.googleapis.com/auth/contacts.readonly'});
googleUser = auth2.currentUser.get();
googleUser.grant(options).then(
function(success){
console.log(JSON.stringify({message: "success", value: success}));
},
function(fail){
alert(JSON.stringify({message: "fail", value: fail}));
});
내가는 onSuccess이 후 사용할 때, 항상 방법을 실패 간다 읽었습니다. 주는 오류 "popup_closed_by_user"해결책 발견이 thread
의 논의 사항에 따라