2010-04-01 69 views
2

我使用的是OAuth與谷歌數據api。我們只爲授權用戶提供門戶。因此,當用戶登錄時,如果他們正在訪問日曆頁面,系統會詢問他們是否要將日曆與Google日曆同步。如果是,他們將被重定向進行身份驗證。用戶授予訪問權限後,Google會將OAuth_Token附加到回調網址。回調網址是門戶網站日曆頁面的回調網址。此網址的查詢字符串選項已加密。但是當重定向發生時,它會返回到url的登錄頁面。Oauth回調問題

網址就像是查詢字符串的http://aaa.xyz.com/(encrypted一部分)和組oauth_token被授權後,該網址將成爲查詢字符串的

http://aaa.xyz.com/(encrypted部分)&的oauth_token。所以用戶在重定向之後看到登錄頁面而不是原始頁面。我應該如何在代碼中處理這個問題。

回答

1

當用戶登錄到您的站點時,請確保用戶會話「狀態」存儲在會話中,以便當來自Google OAuth的重定向返回到頁面時,您檢查用戶是否處於「狀態」在會話中找到。如果是,返回上一頁用戶訪問,否則轉到登錄。

這就是我爲銀行網站實施SSO時所做的。

+0

我想這是一個很好的選擇,當你使用servlets時,不幸的是我沒有使用servlets。 – yogsma 2010-04-05 14:10:09

+0

你在使用什麼框架? – 2010-04-05 14:12:11

+0

我正在研究自定義休眠類框架。 – yogsma 2010-04-05 15:18:15

1

您可以隨時使用帶外OAuth,途徑oauth_callback ='oob'

這將不會重定向到您的頁面,但會顯示驗證程序,以便用戶可以將其複製/粘貼到您的應用程序中。

這對您的用戶來說更加麻煩,但是如果訪問令牌過期了足夠長的時間,它就不會那麼糟糕。

+0

你如何使用谷歌數據api你需要設置分數? – yogsma 2010-04-05 15:24:16

+0

我的意思是範圍*(拼寫錯誤) – yogsma 2010-04-05 15:46:12

+0

作用域是一個不同的oauth參數AFAIK – 2010-04-05 17:06:24