2014-12-04 58 views
0

我有一個使用web服務從gmail獲取用戶電子郵件的liferay中的portlet。我用liferay分類了gmail。這意味着當我登錄到liferay門戶時,用戶將自動登錄到gmail中。Gmail api在使用liferay分類後要求獲得憑據

現在我面對的問題是,比方說,用戶已經清除瀏覽器歷史記錄,餅乾,一切。之後用戶打開liferay門戶並登錄。所以用戶將自動登錄到gmail裏面。直到這裏都沒問題。之後,當我點擊我的portlet時,它正在調用gmail webservice來獲取電子郵件。由於我已經登錄到Gmail,這個網絡服務不應該再問我gmail crendentials了。但它是問。假設我以編程方式在瀏覽器中打開「https://mail.google.com/a/edsoa.com」(這是gmail提供的特定域名網址),所以它會在瀏覽器中創建一個gmail會話,然後如果我訪問gmail web服務,那麼它不會問我憑證。

所以我主要關心的是,有什麼辦法可以在瀏覽器中不用打開「https://mail.google.com/a/edsoa.com」就可以在瀏覽器中創建gmail會話。

總之,我想實現的是,如果我已經在gmail中登錄過,那麼即使訪問任何gmail web服務,gmail也不應該要求我提供憑據。

任何幫助真的會被讚賞,因爲我沒時間了。

謝謝和問候, Abdulbasit F謝赫。

回答

0

你說你通過web服務訪問gmail,但是指的是登錄/註銷的瀏覽器 - 我真的沒有遇到你的問題:如果你正在訪問gmail API(我不是熟悉它),這可能獨立於服務器登錄。

我期望登錄到gmail webservice API是源自(Liferay)服務器,而瀏覽器的標識自然來自您的瀏覽器。因此,無法從(Liferay)服務器啓動瀏覽器會話。

然而,您可以嘗試使用OpenID登錄Liferay - AFAIK google也提供此功能。這意味着您需要向Google提供您的憑據才能登錄Liferay。最有可能的是,這也將簽署你到Gmail(提供你使用相同的帳戶)

+0

感謝奧拉夫你的答案。我得到了提到的問題的解決方案,但又遇到了麻煩,這與發佈的問題有些相關。我在liferay中有一個應用程序,其中包含來自gmail的所有郵件。現在,當我點擊任何電子郵件時,它會將我重定向到實際的Gmail並打開我點擊的郵件。但是,只有當https://mail.google.com/a/edsoa.com在瀏覽器中至少出現一次時纔會發生這種情況。但是,讓我們說我已經清除了我的瀏覽器cookie。所以瀏覽器中不存在gmail cookie。 – abdul 2014-12-05 15:04:28

+0

現在,如果我點擊來自我的應用程序的電子郵件,它會將我重定向到「https://mail.google.com/u/0/#inbox」,但不會打開我點擊的郵件,因爲這是第一次使用Gmail正在加載。之後,如果您點擊任何電子郵件,它會正常打開。所以我主要關心的是,有沒有辦法在清除cookie後,如果我點擊應用程序中的郵件,第一次也應該在Gmail中打開郵件。 – abdul 2014-12-05 15:12:25

+0

這更多的是谷歌處理來自其自己的域外的URL的問題 - 以及它是否記得您在登錄之前請求了哪個頁面。恕我直言,這與Liferay無關,只有谷歌 - 因此我出去了,對不起,我不知道他們如何處理他們的網址。 – 2014-12-05 15:32:08