node.js - 环回上的永久 token

标签 node.js loopbackjs strongloop

我正在使用 Loopback API 构建一个应用程序,该应用程序将由 iPhone 应用程序使用。有一个到 MySQL 数据库的连接,我在其中运行一些查询来获取一些结果并在 API 上公开。

  1. 端点包含一个 ACL,仅允许经过身份验证的用户执行任何操作,包括 GET 操作。因此基本上需要使用 ?access_token 查询字符串来完成请求。
  2. 我想设置一个可以保存在 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/

相关文章:

javascript - 当数据库更改时为每个人更新 DOM - MongoDB、Ajax、Express、React

node.js - iisnode挂起问题

javascript - 使用 Strongloop 环回实现 Q

amazon-ec2 - 无法从浏览器在 Amazon ec2 实例上运行 Strongloop Loopback

node.js - 如何更新模型? .updateAttributes 不是函数

node.js - Webpack CLI 忽略 .babelrc

loopbackjs - LoopbackJS 是否会在创建新模型时自动创建 createdAt 和 modified 字段?如何启用?

mongodb - 环回 JS : Rename Existing Model

android - 来自 Android 的 Loopback 自定义方法调用

mysql - StrongLoop中的过滤条件用[and]和[or]条件一起编写