这是我添加的启动脚本代码
module.exports = function enableAuthentication(server) {
//enable authentication
server.enableAuth();
};
在postman工具中,我尝试过在header中为header / logout api设置头文件中的授权(注意:我通过扩展user
模型创建了User
模型),
authorization LqAHkjJV4JQ7oiW6QrYPeDoJszqUXSSUi7NwTHivKV0jyNK3VSyIyFxon72NfPzZ
但我得到以下错误,
{"error":{"name":"Error","status":500,"message":"could not find accessToken","stack":"Error: could not find accessToken\n at D:\\zauth\\node_modules\\loopback\\common\\models\\user.js:302:12\n at D:\\zauth\\node_modules\\loopback-datasource-juggler\\lib\\dao.js:2056:62\n at D:\\zauth\\node_modules\\loopback-datasource-juggler\\lib\\dao.js:1984:11\n at D:\\zauth\\node_modules\\loopback-datasource-juggler\\node_modules\\async\\lib\\async.js:396:17\n at async.each (D:\\zauth\\node_modules\\loopback-datasource-juggler\\node_modules\\async\\lib\\async.js:153:20)\n at _asyncMap (D:\\zauth\\node_modules\\loopback-datasource-juggler\\node_modules\\async\\lib\\async.js:390:13)\n at Object.map (D:\\zauth\\node_modules\\loopback-datasource-juggler\\node_modules\\async\\lib\\async.js:361:23)\n at allCb (D:\\zauth\\node_modules\\loopback-datasource-juggler\\lib\\dao.js:1912:15)\n at D:\\zauth\\node_modules\\loopback-datasource-juggler\\lib\\connectors\\memory.js:472:7\n at _combinedTickCallback (internal/process/next_tick.js:67:7)\n at process._tickDomainCallback (internal/process/next_tick.js:122:9)"}}
我也试过了,
http://localhost:3000/api/users/logout?access_token=LqAHkjJV4JQ7oiW6QrYPeDoJszqUXSSUi7NwTHivKV0jyNK3VSyIyFxon72NfPzZ
这不是问题,同样的错误
我必须知道如何传递accessstoken @ kamal0808
答案 0 :(得分:0)
内置用户模型的默认ACL不允许列出用户:
您可以在此处查看完整配置: https://loopback.io/doc/en/lb3/Managing-users.html#default-access-controls
以上ACL拒绝所有人的操作,然后有选择地允许:
- 任何人都可以创建新用户(用户实例)。
- 任何人都可以登录,注销,确认自己的身份,并重置自己的密码。
- 用户在自己的用户记录(实例)上执行deleteById,findById和updateAttributes。
您无法直接修改内置用户模型,因此需要对其进行扩展。
成功登录后如何传递访问令牌? 您有两种方法:
您应该使用HTTP标头,因为使用查询参数不够安全(它们不会被SSL协议加密,并且可以保留在浏览器或其他客户端历史记录中)。
检查文档的更多信息:https://loopback.io/doc/en/lb3/Making-authenticated-requests.html
答案 1 :(得分:0)
您需要为应用程序的每个API请求设置ACL(访问控制级别)。
这里是ACL的doc链接: https://loopback.io/doc/en/lb2/Controlling-data-access.html
对于您的代码,您需要在 Users.json 文件的ACL数组中获取以下对象:
{
"accessType": "EXECUTE"
"principalType": "ROLE",
"principalId": "$authenticated",
"permission": "ALLOW",
"property": "find"
}
$ authenticated 是指任何可以登录的人。您也可以为用户创建自定义角色。