mysql - Loopback api 错误 401 需要授权
问题描述
我正在使用后端 mysql 创建环回项目。我的服务器在 localhost:3000 上正常运行,但是当我向 localhost/api/Users 发出请求时,出现以下错误。
Error
401 Authorization Required
code: AUTHORIZATION_REQUIRED
Error: Authorization Required
at C:\Users\Khundokar Nirjor\Desktop\Loopback\Loopbackshoppingcart\node_modules\loopback\lib\application.js:433:21
at C:\Users\Khundokar Nirjor\Desktop\Loopback\Loopbackshoppingcart\node_modules\loopback\lib\model.js:359:7
at C:\Users\Khundokar Nirjor\Desktop\Loopback\Loopbackshoppingcart\node_modules\loopback\common\models\acl.js:536:16
at C:\Users\Khundokar Nirjor\Desktop\Loopback\Loopbackshoppingcart\node_modules\async\dist\async.js:3888:9
at C:\Users\Khundokar Nirjor\Desktop\Loopback\Loopbackshoppingcart\node_modules\async\dist\async.js:473:16
at iteratorCallback (C:\Users\Khundokar Nirjor\Desktop\Loopback\Loopbackshoppingcart\node_modules\async\dist\async.js:1064:13)
at C:\Users\Khundokar Nirjor\Desktop\Loopback\Loopbackshoppingcart\node_modules\async\dist\async.js:969:16
at C:\Users\Khundokar Nirjor\Desktop\Loopback\Loopbackshoppingcart\node_modules\async\dist\async.js:3885:13
at C:\Users\Khundokar Nirjor\Desktop\Loopback\Loopbackshoppingcart\node_modules\loopback\common\models\acl.js:518:17
at C:\Users\Khundokar Nirjor\Desktop\Loopback\Loopbackshoppingcart\node_modules\loopback\common\models\role.js:447:21
at processTicksAndRejections (internal/process/task_queues.js:75:11)
这是我的 package.json 代码。
{
"name": "Loopbackshoppingcart",
"version": "1.0.0",
"main": "server/server.js",
"engines": {
"node": ">=6"
},
"scripts": {
"lint": "eslint .",
"start": "node .",
"posttest": "npm run lint && npm audit"
},
"dependencies": {
"compression": "^1.0.3",
"cors": "^2.5.2",
"helmet": "^3.10.0",
"loopback-boot": "^2.6.5",
"serve-favicon": "^2.0.1",
"strong-error-handler": "^3.0.0",
"loopback-component-explorer": "^6.2.0",
"loopback": "^3.22.0"
},
"devDependencies": {
"eslint": "^3.17.1",
"eslint-config-loopback": "^8.0.0"
},
"repository": {
"type": "",
"url": ""
},
"license": "UNLICENSED",
"description": "Loopbackshoppingcart"
}
这是 middleware.json 的代码
{
"initial:before": {
"loopback#favicon": {}
},
"initial": {
"compression": {},
"cors": {
"params": {
"origin": true,
"credentials": true,
"maxAge": 86400
}
},
"helmet#xssFilter": {},
"helmet#frameguard": {
"params": {
"action": "deny"
}
},
"helmet#hsts": {
"params": {
"maxAge": 0,
"includeSubdomains": true
}
},
"helmet#hidePoweredBy": {},
"helmet#ieNoOpen": {},
"helmet#noSniff": {},
"helmet#noCache": {
"enabled": false
}
},
"session": {},
"auth": {},
"parse": {},
"routes": {
"loopback#rest": {
"paths": [
"${restApiRoot}"
]
}
},
"files": {
"loopback#static": {
"params": "$!../client"
}
},
"final": {
"loopback#urlNotFound": {}
},
"final:after": {
"strong-error-handler": {}
}
}
这是 datasourcec.json 的代码
{
"db": {
"name": "db",
"connector": "memory"
}
}
解决方案
首先,您必须将您的应用程序连接到 SQL 数据源。参考:https ://loopback.io/doc/en/lb2/Connecting-models-to-data-sources.html
您必须为“用户模型”管理 ACL。参考:https ://loopback.io/doc/en/lb2/Controlling-data-access.html
- 然后,您可以根据您为用户模型定义的 ACL 创建和获取列出的用户。
推荐阅读
- reverse-engineering - __ctype_b 表及其用法
- java - 如何模拟接口默认方法 Java8/Mockito2
- c - MiniDumpWriteDump 另一个进程
- mysql - MySQL 在执行计划中显示索引,但并没有真正使用它
- ubuntu - 如何向 Google Cloud Compute Engine VM Linux 实例添加 SSH 密钥?
- ansible - Ansible/Junos_OS - 变量的返回不缩进
- java - 在 ByteArrayOutputStream 中搜索子字符串
- ios - 如何从 iOS 应用程序将日志发送到 CloudWatch?
- assembly - 如何在arm Assembly中乘以和除以奇数常数?
- javascript - Javascript Web Firebase 获取在本地运行但不在公共 IP 中运行的令牌