我正在使用 Loopback API 构建一个应用程序,该应用程序将由 iPhone 应用程序使用。有一个到 MySQL 数据库的连接,我在其中运行一些查询来获取一些结果并在 API 上公开。
- 端点包含一个 ACL,仅允许经过身份验证的用户执行任何操作,包括 GET 操作。因此基本上需要使用 ?access_token 查询字符串来完成请求。
- 我想设置一个可以保存在 MySQL 数据库上并可以在 API 上“永远”使用的 token 。
我不确定我是否问了正确的问题,但如果这不是解决这个问题的方法,那会是什么?
我的主要观点是,我需要使用 token 对请求进行身份验证,但我不想在设置后丢失该 token 。
感谢任何帮助。谢谢!
最佳答案
默认情况下,最大 token ttl 为 1 年。值得庆幸的是,Loopback 有一个选项允许您创建永久访问 token :
allowEternalTokens
Boolean Allow access tokens that never expire.
https://loopback.io/doc/en/lb3/Model-definition-JSON-file.html#advanced-options
如果您使用默认用户模型,您可以在 server/model-config.json 中启用它:
"User": {
"dataSource": "db",
"options": {
"validateUpsert": true,
"allowEternalTokens": true
}
},
然后登录时将ttl
设置为-1
。
请注意,每次您登录 (User.login
) 时,您的 token 都会被替换为新 token 。因此,如果您想重复使用相同的访问 token ,只需登录一次。您可以从 AccessToken 模型(或直接从数据库)获取现有的访问 token 。
如果您有自定义用户模型,则可以直接在模型定义文件中设置allowEternalTokens
。此外,如果您有自定义用户模型,您还需要更新 AccessToken 模型(内置模型或自定义模型,如果有的话)的关系
以指向自定义用户模型。
有关自定义用户/访问 token 模型的更多信息:http://loopback.io/doc/en/lb3/Authentication-authorization-and-permissions.html#preparing-access-control-models
关于node.js - 环回上的永久 token ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39622211/