2
我試圖通過他們的嚮導登錄/註銷從谷歌添加到/: https://developers.google.com/identity/sign-in/web/sign-in谷歌登入按鈕在角2+
但我面臨的一些問題。
的index.html:
<meta name="viewport" content="width=device-width, initial-scale=1">
<script src="https://apis.google.com/js/platform.js" async defer></script>
<meta name="google-signin-client_id" content="**my-google-api-key**.apps.googleusercontent.com">
<script>
gapi.load('auth2',function() {
gapi.auth2.init();
});
</script>
app.component.html:
<div class="g-signin2" data-onsuccess="onSignIn"></div>
<a href="#" onclick="signOut();">Sign out</a>
app.component.ts:
public onSignIn(googleUser):void {
var profile = googleUser.getBasicProfile();
console.log('ID: ' + profile.getId()); // Do not send to your backend! Use an ID token instead.
console.log('Name: ' + profile.getName());
console.log('Image URL: ' + profile.getImageUrl());
console.log('Email: ' + profile.getEmail());
}
public signOut():void {
var auth2 = gapi.auth2.getAuthInstance();
auth2.signOut().then(function() {
console.log('User signed out.');
});
}
個問題:
- succussfully登錄後,onSignIn功能不會被調用,所以打印什麼,但簽到工作。
- 在signOut函數中我有錯誤:「找不到名字'gapi'。」但註銷正在工作。
問:
谷歌告訴我們,不要使用googleUser.getBasicProfile()的getId()作爲用戶ID,但使用ID令牌這一翻譯:googleUser.getAuthResponse()id_token.sub 。 爲什麼?
你成功完成了嗎? 我被困在同一件事上... – mrgoos
是的,我搬到了firebase,在那裏你有簡單的方法來登錄谷歌/臉譜/ ....它很容易。你調用login並訂閱你登錄後recive對象的auth對象的變化(如果它成功了,你會得到用戶的詳細信息等)。我用一個dbase的firebase替換我的應用程序中的服務器端,但我想我會使用firebase api來登錄,雖然谷歌即使我不會用它作爲dababse。 CHECK OUT:來自github的angularfire和這個鏈接:https://github.com/firebase/angularfire/blob/master/docs/guide/user-auth.md –
很酷。是的firebase是偉大的,但我不能在我的項目中使用它。我確實找到了一種方法,我會把它作爲答案。 – mrgoos