Tôi đang làm việc trên một chức năng cho phép người dùng đăng nhập trên trang web của tôi bằng tài khoản Google của họ.Đăng nhập bằng Google+ với sự cố gọi lại JavaScript
Mã của tôi dựa trên số Google documentation (các tùy chọn signIn() khác nằm trong thẻ meta).
function login() {
gapi.auth.signIn({'callback':
function (authResult) {
if (authResult['status']['signed_in']) {
console.log('Okay');
}else {
console.log('Error');
}
}
});
}
Khi tôi gọi đăng nhập(), cửa sổ bật lên của Google xuất hiện, tôi chấp thuận điều khoản của đơn đăng ký và mọi thứ hoạt động tốt.
Nhưng callback được gọi hai lần:
- trường hợp 1: Nếu tôi không bao giờ chấp nhận các ứng dụng cho phép sau đó gọi lại sẽ gọi tại buổi khai mạc của cửa sổ pop up VÀ khi tôi sẽ chấp nhận các điều khoản. Vì vậy, nó sẽ viết "Lỗi" và "Được rồi".
- Trường hợp thứ hai: Nếu tôi đã phê duyệt các quyền, nó sẽ viết "Được rồi" hai lần.
Tôi đã thêm tùy chọn 'approvalprompt': 'force'
vào hàm signIn(). Hàm gọi lại không còn được gọi hai lần nữa nhưng nó buộc người dùng chấp thuận các quyền của ứng dụng, ngay cả khi đã được phê duyệt trước đó. Vì vậy, nó không thân thiện với người dùng.
Có cách nào thân thiện với người dùng để phê duyệt quyền của ứng dụng một lần mà không có hai cuộc gọi lại không?
Cảm ơn bạn.
bản sao có thể có của [Đăng nhập Google hai lần?] (Http://stackoverflow.com/questions/23020733/google-login-hitting-twice) –
Dường như đây là vấn đề phổ biến. Có một câu trả lời ở đây: stackoverflow.com/questions/23020733/… - –