在reactjs和react-native app中使用OAuth的困惑

时间:2017-09-12 05:53:53

标签: javascript reactjs react-native facebook-javascript-sdk

我有一个问题,让我说我有一个网站(reactjs)和app(react-native)都使用OAuth facebook登录。我应该在我的数据库中保存facebook提供的访问令牌,如果我应该,当用户在网站上登录facebook然后再次使用该应用程序登录时,访问令牌会发生什么?

这是否意味着新登录会覆盖访问令牌?您对OAuth集成的良好实践有任何其他建议吗?

1 个答案:

答案 0 :(得分:0)

连续2次登录的OAuth令牌不同。我仍然会将它们存储在数据库中,但不会将其作为1:1与用户机器人的1:1关系存储。这意味着每个用户都可以分配多个OAuth令牌。

在OAuth中,您还可以获得令牌的到期时间。您也可以存储该表,并在需要时清理表。

对于mongoDB,直接在答案中为了更好的可读性: 您可以像这样设计用户集合:

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

使用

在令牌验证后搜索用户到Facebook
collection.find({"token.value": "abc1234"})