2013-03-28 66 views
1

我使用Devise和Omniauth,並關注它的railscast(http://railscasts.com/episodes/235-devise-and-omniauth-revised)。它只處理:uid,:provider。沒有涉及令牌(來自Oauth2)? (https://github.com/intridea/omniauth/wiki/Auth-Hash-Schema如何處理Omniauth中的訪問令牌(來自Auth哈希)?

所以,問題是,如何處理訪問令牌?例如,我使用omniauth-qq(https://github.com/beenhero/omniauth-qq)。你可以看到在驗證散列中有[:credentials] [:token]

順便說一下,我只使用omniauth來登錄用戶。

更新: 我的意思是我不知道如何處理軌道中的令牌。例如,將它存儲在會話或其他內容中?這是我的代碼,我根本沒有處理過這個問題。有沒有任何示例可以看到如何使用令牌?

def self.from_omniauth(auth) 
     where(auth.slice(:provider, :uid)).first_or_create do |user| 
     user.provider = auth.provider 
     user.uid = auth.uid 
     user.name = auth.info.nickname 
     user.image = auth.info.image 
     end 
    end 

回答

0

這取決於你想例如做...什麼,如果你使用ominiauth,Twitter或Facebook,那些標記是urself認證有用,您可以使用該令牌來獲得額外的信息,如圖片,綽號等等。

+0

我可能得不到我的主意。我只是不知道如何在我的代碼中使用訪問令牌,比如稍後將它存儲在會話中並更新。看我的更新。 – cqcn1991 2013-03-28 09:51:33

+0

可能你可以只存儲在你的cookie或數據庫以及我猜(由於安全cz,如果黑客得到它,它可能使用令牌caputre信息)..但你需要一個方法來處理訪問令牌,因爲它可能已過期,對於臉書,默認爲2小時,但不確定當前文檔是否更改。 – Nich 2013-03-28 13:11:04

+0

是否有任何示例要遵循?我不太清楚如何處理它......謝謝! – cqcn1991 2013-03-28 13:34:09

1

我遵循相同的屏幕錄像,它在沒有令牌操作的情況下正常工作。

如果您僅將其用於登錄,則無需對其執行任何操作。

您將需要令牌執行其他操作,例如在朋友列表上執行請求等。

+0

所以即使令牌過期,沒有什麼會打擾? – cqcn1991 2013-03-28 12:28:43