我有一个问题,让我说我有一个网站(reactjs)和app(react-native)都使用OAuth facebook登录。我应该在我的数据库中保存facebook提供的访问令牌,如果我应该,当用户在网站上登录facebook然后再次使用该应用程序登录时,访问令牌会发生什么?
这是否意味着新登录会覆盖访问令牌?您对OAuth集成的良好实践有任何其他建议吗?
答案 0 :(得分:0)
连续2次登录的OAuth令牌不同。我仍然会将它们存储在数据库中,但不会将其作为1:1与用户机器人的1:1关系存储。这意味着每个用户都可以分配多个OAuth令牌。
在OAuth中,您还可以获得令牌的到期时间。您也可以存储该表,并在需要时清理表。
对于mongoDB,直接在答案中为了更好的可读性: 您可以像这样设计用户集合:
{
"_id": 42,
"username": "jeger",
"token": [
{"value": "abc1234", "expiration": ...}
{"value": "bca4321", "expiration": ...}
]
}
使用
在令牌验证后搜索用户到Facebookcollection.find({"token.value": "abc1234"})