为什么随accessToken一起提供userId?我们能从AccessToken API中找不到使用filter的userId吗?.Can有谁能解释一下逻辑吗?
到目前为止,所有接口(GET /accessTokens/{id})都被拒绝。我们如何才能重写相同的代码,以便可以跟踪userId。
{
"id": "UksV2aTVyKfUAzBm8cQKRO9NkCIKUHZCXXr4gZNrCj9zXBiUX8kXVE97RDQl1PcC",
"ttl": 1209600,
"created": "2016-02-25T11:21:13.253Z",
"userId": "56cbf0beda568ffb103b78bc"
}发布于 2016-02-26 16:41:38
我可能是错的,但我非常怀疑您能否仅通过计算从访问令牌(基本上是反转令牌)获得用户id,因为它是一个密码学上的generated令牌。
如果您的目标是限制特定用户对特定资源的访问,则需要在模型和userModel之间建立关系,例如UserModel hasMany ForumPosts
这样,您就可以知道特定的ForumPosts实例是否属于特定的UserModel实例(=特定的用户)。
然后设置访问控制:
ForumPosts $owner a specific method of ForumPosts
然后,您可以调用rest端点,如DELETE api/UserModel/{userId}/ForumPosts/{modelId}?access_token=UksV2aTVyKfUAzBm8cQKRO9NkCIKUHZCXXr4gZNrCj9zXBiUX8kXVE97RDQl1PcC
然而,这还不够。ID =1的经过身份验证的用户可以调用id = 5的端点,请求将通过。
因此,您需要确保端点中提供的userId与JSON令牌匹配。最好的方法是使用operation hook,比如本例中的before delete,并检查从端点生成的令牌-假设userId与传递的令牌匹配。
希望这能有所帮助
https://stackoverflow.com/questions/35626420
复制相似问题