簽署了與谷歌登錄(GAPI)所以我曾嘗試以下模板試圖整合this:麻煩與angularjs
HTML:
<google-sign-in-button button-id="login-button" options="options"></google-sign-in-button>
CSS:
.directive('googleSignInButton', function() {
return {
scope: { buttonId: '@', options: '&' },
template: '<div></div>',
link: function(scope, element, attrs) {
var div = element.find('div')[0];
div.id = attrs.buttonId;
gapi.signin2.render(div.id, scope.options());
}
};
})
-
我也只是試圖在頭這樣做的,使用按鈕,在常規登錄:
HTML:
<div class="g-signin2" data-onsuccess="onSignIn"></div>
在頭:
<script>
window.onLoadCallback = function(){
gapi.auth2.init({
client_id: '123.apps.googleusercontent.com'
});
}
</script>
無論我做什麼,我都無法弄清楚如何登錄一個用戶。在我的控制器,當我嘗試做gapi.auth.signOut();
它說GAPI未定義
編輯:
我也試着在這個涉獵登錄一個人出來上運行,但理想我想在任何地方進行註銷工作,而不僅僅是在頁面加載時進行。我真的不知道在哪裏把它和正確的方法來做到這一點:
.run(function ($rootScope, $state) {
gapi.load('auth2', function() {
auth2 = gapi.auth2.init();
auth2.then(function(){
auth2.signOut();
});
});
})
編輯#2:
我也試圖在我的UI創建這個工廠有決心-router但它沒有得到及時或根本
.factory('Auth', function($http, $state, $q, $rootScope) {
var factory = { loggedIn: loggedIn };
return factory;
function loggedIn() {
gapi.load('auth2', function() {
auth2 = gapi.auth2.init();
auth2.then(function(){
return auth2.isSignedIn.get();
});
});
}
})
編輯#3的數據:
我試圖創建一個服務,但我不斷收到以下錯誤出於某種原因,甚至測試:
Error: undefined is not an object (evaluating 'gapi.auth2.init')
.service('googleService', ['$http', '$rootScope', '$q', function ($http, $rootScope, $q) {
var self = this;
this.signedIn = function() {
auth2 = gapi.auth2.init();
auth2.then(function(){
return auth2.isSignedIn.get();
});
}
this.signOut = function(){
var auth2 = gapi.auth2.getAuthInstance();
auth2.signOut().then(function() {
console.log('User signed out.');
});
}
}])
.controller('login', ['$rootScope', '$scope', '$q', 'googleService', function ($rootScope, $scope, $q, googleService) {
console.log(googleService.signedIn());
}])
請讓我知道,如果你仍然遇到這個問題,我給你一個工作的例子,但要真正指出爲什麼你的代碼不工作,我需要一個小提琴來看看自己 – sniels