我們的用例要求我們爲用戶(提供者和消費者)提供兩種不同的模型。因此,我們將用戶模型擴展爲消費者和提供者模型,但當提供者的AccessToken也開始爲消費者工作時,很快就會遇到麻煩。環回擴展訪問令牌模型導致問題
例如,讓我們假設提供者A的userId爲1,並且消費者A的userId爲1,如果提供者A登錄並接收到AccessToken,則他可以通過使用他的accessToken查詢消費者模型來提取關於消費者A的信息。這可能會造成災難。 ctx.req.accessToken.userId在消費者模型中爲消費者和提供者令牌返回1。
我們試着將AccessToken模型擴展爲AccessTokenProvider和AccessTokenConsumer。下面是AccessTokenConsumer
"relations": {
"user": {
"type": "belongsTo",
"model": "consumer",
"foreignKey": "userId" } }
和消費模式
"relations": {
"accessTokens": {
"type": "hasMany",
"model": "AccessTokenConsumer",
"foreignKey": "userId",
"options": {
"disableInclude": true
}
} }
然而,模型關係,現在ctx.req.accessToken返回null,並註銷其餘功能給出「找不到的accessToken」錯誤