2013-04-14 55 views
0

我使用node.js + express.js堆棧,用戶可以通過twitter和facebook reigster /登錄,也可以使用我的本地註冊表進行註冊。我用everyauth來處理Twee和Fb。Oauth登錄並註冊自定義用戶名,express.js

的問題是: 有一個簡單的解決方案,同時使他們能夠改變它的用戶名註冊與第三方的OAuth服務用戶?

例如: 用戶登錄到網站與Twitter的第一次 - >他得到形成,他補充說他的自定義用戶名和電子郵件

雖然他登錄下次我需要檢查db他的CUSTOM USERNAME而不是他的twitter。

回答

0

是的,這是可能的。在第一次登錄嘗試時,您使用node-oauth模塊通過twitter驗證用戶身份。這是tutorial。驗證過程完成後,twitter會在其結果中發送一個唯一的ID,並在數據庫中存儲具有oauth標記和祕密(如果需要)的標識。同時將這些數據保存在Session中,並顯示一個表單,您可以要求用戶選擇他想要的用戶名。使用它並存儲在數據庫中。

下一次,當他再次嘗試進行身份驗證時,您只需檢查存儲在數據庫中的唯一ID(不是真正的用戶名)。

+0

所以我需要在db中存儲用戶的twitter accessToken? – Kosmetika

+0

是的,你可以,然後更新,每次用戶嘗試認證:) – Rishabh

+0

但如果服務更改了令牌 - >在db中找到存儲的令牌時,用戶將被解釋爲新的 – Kosmetika