我正在使用openid登錄用戶。(僅限谷歌帳戶)。 現在我的頁面上有一個退出鏈接,點擊時,我希望用戶從Google帳戶中註銷,並將頁面重定向到我的主頁。 可以這樣做嗎?谷歌帳戶註銷並重定向
編輯-
更改接受的答案,因爲現在Google允許將[繼續]重定向到您想要的任何域。
我正在使用openid登錄用戶。(僅限谷歌帳戶)。 現在我的頁面上有一個退出鏈接,點擊時,我希望用戶從Google帳戶中註銷,並將頁面重定向到我的主頁。 可以這樣做嗎?谷歌帳戶註銷並重定向
編輯-
更改接受的答案,因爲現在Google允許將[繼續]重定向到您想要的任何域。
我已經解決了這個問題當用戶點擊註銷鏈接時調用此功能:
var logout = function(){
document.location.href = "https://www.google.com/accounts/Logout?continue=https://appengine.google.com/_ah/logout?continue=http://www.example.com";
}
當用戶點擊鏈接時,瀏覽器將用戶重定向到註銷頁面,並且只有當註銷完成後,用戶纔會重定向到「http://www.example.com」站點。
我希望這可以提供幫助。
挑戰
請求https://www.google.com/accounts/Logout將註銷用戶。 Google有時會添加一個continueUrl參數,但只有當目標是某個Google網站而不是您自己的目標時,它纔會成功重定向用戶。這使得這種方法無法使用。
此外,OpenID規範此時不包括全局註銷。
還有另一種方法:
建議
在您的網頁上的iframe中,使用的onClick JavaScript事件處理程序註銷鏈接https://www.google.com/accounts/Logout加載到iframe中。之後(你可能想檢查IFrame是否加載成功),將用戶重定向到你自己站點的註銷過程。註銷後,讓該頁面重定向到您的主頁。
鏈接看起來有點像這樣:
<a href="https://www.google.com/accounts/Logout"
onclick="myIFrame.location='https://www.google.com/accounts/Logout';StartPollingForCompletion();return false;">
log out</a>
<iframe id="myIFrame"></iframe>
您需要實現StartPollingForCompletion()
功能定期檢查註銷頁面是否已加載。使用setTimeout()
來進行投票計時,並檢查IFrame上的某些屬性(我不確定哪些會起作用,因爲您在此處跨站點工作)。
也看到這些問題:
我一直在努力這樣做。對於谷歌唯一的應用程序 -
要註銷嘗試以下兩種選擇:
1)使用I幀 -
<iframe src="https://mail.google.com/a/YOURDOMAIN.IN/?logout&hl=en" width="100%" height="300">
<p>Your browser does not support iframes.</p>
</iframe>
2)使用JavaScript -
<script type="text/javascript">
window.open('https://mail.google.com/a/YOURDOMAIN.IN/?logout&hl=en','logout_from_google','width=600,height=300,menubar=no,status=no,location=no,toolbar=no,scrollbars=no,top=20,left=20');
</script>
不好意思,這個帖子回覆很久,他提出了我在該項目中使用的iframe方法...感謝您寶貴的時間:) – Shrinath 2011-02-14 12:18:59
嗨。你能告訴我你是怎麼做到的?我想要做的是發送一個隱藏的請求,從谷歌acccount註銷用戶,然後帶他到我想要的任何PHP頁面。請幫忙 ! – 2011-02-15 08:33:30
我只需要做同樣的事情,註銷用戶。不知何故接受的答案不爲我工作,我得到了一個錯誤,從谷歌
The page you requested is invalid.
所以我最終把這個在我的網頁:
<img src="https://www.google.com/accounts/Logout" />
成功地註銷用戶。 source
正如我已經花了巨大多的時間在這個谷歌登錄/註銷問題我的應用程序(這是一個節點/ MongoDB的服務器,使用大量谷歌文檔和谷歌API的腳本),我不得不共用我在這裏的成績..
唯一的好辦法徹底註銷用戶使用:如果你使用該解決方案通過上面的愛爾蘭共和軍放棄
var newWindow = window.open('https://mail.google.com/mail/?logout&hl=fr','Disconnect from Google','width=100,height=50,menubar=no,status=no,location=no,toolbar=no,scrollbars=no,top=200,left=200');
setTimeout(function(){
if (newWindow) newWindow.close();
window.location="auth/google";
},3000);
,它是做什麼的,似乎對部分註銷瀏覽器的當前選項卡。這意味着如果用戶關閉該選項卡並重新打開應用程序,他將仍然記錄到以前的帳戶。
我不得不使用外部窗口,因爲從電子郵件谷歌帳戶註銷後,我無法正確重定向到我的應用程序。如果用戶帶寬不是太慢,在關閉彈出窗口之前讓註銷完成3秒鐘,這個解決方案大部分時間都可以工作。然後用戶需要在我的主窗口應用程序中登錄另一個帳戶。
這證實了floccinaucinihilipilification的解決方案,也許上面給出的iframe解決方案應該比我的更好。
以下是我所做的事情,不記得我是否做出來或發現它在某處......它的功能就像一個魅力......除了它將您從所有Google網站註銷(我可以真不敢相信他們沒有提供一個適當的方式做到這一點,但你去那裏。)
<script>
function makeFrame(domId,url) {
ifrm = document.createElement("IFRAME");
ifrm.setAttribute("src", url);
ifrm.setAttribute("id", domId);
ifrm.setAttribute("style", "display:none;");
ifrm.style.width = 1+"px";
ifrm.style.height = 1+"px";
document.body.appendChild(ifrm);
}
function logOutGoogle(){
makeFrame('googleLogoutIFrame','https://www.google.com/accounts/Logout');
}
$(window).ready(function() {
logOutGoogle();
});
</script>
謝謝,但你遲到了派對:)我需要它2年前:) – Shrinath 2013-02-25 09:30:31
對不起,但最近我有同樣的問題,我沒有找到一個有效的解決方案在網絡上。 我希望這個解決方案對像我這樣的人有用:D – ira 2013-02-25 20:36:46
好的,你的意思是Google現在讓你「繼續」進入任何領域? – Shrinath 2013-03-01 09:08:51