为什么userId
与accessToken一起提供?我们是否可以使用AccessToken API中的过滤器找到userId
?任何人都可以解释逻辑吗?
截至目前,API(GET /accessTokens/{id}
)已全部拒绝。我们如何覆盖相同的内容,以便可以跟踪userId
。
{
"id": "UksV2aTVyKfUAzBm8cQKRO9NkCIKUHZCXXr4gZNrCj9zXBiUX8kXVE97RDQl1PcC",
"ttl": 1209600,
"created": "2016-02-25T11:21:13.253Z",
"userId": "56cbf0beda568ffb103b78bc"
}
答案 0 :(得分:0)
我可能错了,但我非常怀疑你可以从访问令牌中获取用户ID(基本上,反转令牌)只是通过计算,因为它是一个密码学generated令牌
如果您的目标是限制某个特定用户访问某个资源,则需要在模型和userModel之间建立关系,例如UserModel
hasMany
ForumPosts
这样,您就可以知道特定ForumPosts
实例是否属于特定UserModel
实例(=特定用户)。
然后设置访问控制:
ForumPosts
然后您可以调用休息端点,如DELETE api/UserModel/{userId}/ForumPosts/{modelId}?access_token=UksV2aTVyKfUAzBm8cQKRO9NkCIKUHZCXXr4gZNrCj9zXBiUX8kXVE97RDQl1PcC
然而,这还不够。 ID = 1的经过身份验证的用户可以调用id = 5的端点,并且请求将通过。
因此,您需要确保端点中提供的userId与JSON令牌匹配。最好的方法是在这种情况下使用operation hook,例如before delete
,并检查从端点提供的userId生成令牌是否与传递的令牌匹配。
希望这有帮助