2017-09-12 46 views
0

我有一個問題,比方說我有一個使用OAuth Facebook登錄的網站(reactjs)和應用(react-native)。我應該在我的數據庫中保存由facebook提供的訪問令牌嗎?如果我應該這樣做,當用戶在網站上使用Facebook登錄並使用應用重新登錄時,訪問令牌會發生什麼變化?在reactjs和react-native應用中使用OAuth時出現混亂

這是否意味着訪問令牌將被新的登錄覆蓋?您是否有任何其他關於OAuth集成良好實踐的建議?

回答

0

2個連續登錄的OAuth令牌不同。我仍然將它們存儲在數據庫中,但與1:n的用戶bot沒有1:1的關係。這意味着每個用戶都可以分配多個OAuth令牌。

在OAuth中,您還可以取回令牌到期。如果需要,您也可以保存該表格並清理表格。

MongoDB的再次直接的答案爲更好的可讀性: 你可以設計你的用戶採集這樣的:

{ 
    "_id": 42, 
    "username": "jeger", 
    "token": [ 
     {"value": "abc1234", "expiration": ...} 
     {"value": "bca4321", "expiration": ...} 
    ] 
} 

和令牌驗證後,搜索用戶在Facebook與

collection.find({"token.value": "abc1234"}) 
+0

如此,我應該在數據庫中創建兩個實體,一個用於Web,一個用於移動?並感謝 –

+0

我會建議2個實體。一個用於用戶,另一個用於1:n關係的令牌。請記住,用戶也可以從多個瀏覽器登錄。 – jeger

+0

那麼,就Mongodb而言,兩個不同的集合一個用於用戶,另一個用於令牌? –