环回上的永久令牌
Permanent token on loopback
我正在构建一个使用 Loopback API 的应用程序,它将被 iPhone 应用程序使用。有一个到 MySQL 数据库的连接,我在其中 运行 进行一些查询以获得一些结果并在 API.
上公开
- 端点包含一个 ACL,只允许经过身份验证的用户执行任何操作,包括 GET 操作。所以基本上请求需要使用 ?access_token 查询字符串来完成。
- 我想设置一个可以保存在 MySQL 数据库中并且可以在 API 上使用 "forever" 的令牌。
我不确定我问的问题是否正确,但如果这不是解决问题的方法,那会是什么?
我的主要观点是我需要使用令牌对请求进行身份验证,但我不想在设置令牌后丢失它。
感谢任何帮助。谢谢!
您可以在您 iOS 应用程序发送的凭据 json 中传递 ttl
,在此示例中,令牌将存在 60 秒,只需使用较高的值即可令牌 "permanent":
POST /Users/login
{
"email":"user@email.com",
"password":"12345689",
"ttl": 60000
}
或者创建一个 before remote 方法来更改 ttl
属性,查看这篇文章:
我将 TTL
设置为最长 1 年,但我将 created
字段设置为非常遥远的未来某个时间,例如 2112-10-29 00:00:00-04
。这使得令牌在一个世纪后过期。
默认情况下最大令牌 ttl 为 1 年。值得庆幸的是,Loopback 有一个选项可以让您创建永久访问令牌:
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
) 时,您的令牌都会被替换为一个新令牌。因此,如果您想重复使用相同的访问令牌,只需登录一次。您可以从 AccessToken 模型(或直接从数据库)中获取现有的访问令牌。
如果您有自定义用户模型,可以直接在模型定义文件中设置allowEternalTokens
。此外,如果您有自定义用户模型,您还需要更新 AccessToken 模型(内置模型或自定义模型,如果有的话)的 relations
以指向自定义用户模型.
有关自定义 user/access 代币模型的更多信息,请点击此处:http://loopback.io/doc/en/lb3/Authentication-authorization-and-permissions.html#preparing-access-control-models
我正在构建一个使用 Loopback API 的应用程序,它将被 iPhone 应用程序使用。有一个到 MySQL 数据库的连接,我在其中 运行 进行一些查询以获得一些结果并在 API.
上公开- 端点包含一个 ACL,只允许经过身份验证的用户执行任何操作,包括 GET 操作。所以基本上请求需要使用 ?access_token 查询字符串来完成。
- 我想设置一个可以保存在 MySQL 数据库中并且可以在 API 上使用 "forever" 的令牌。
我不确定我问的问题是否正确,但如果这不是解决问题的方法,那会是什么?
我的主要观点是我需要使用令牌对请求进行身份验证,但我不想在设置令牌后丢失它。
感谢任何帮助。谢谢!
您可以在您 iOS 应用程序发送的凭据 json 中传递 ttl
,在此示例中,令牌将存在 60 秒,只需使用较高的值即可令牌 "permanent":
POST /Users/login
{
"email":"user@email.com",
"password":"12345689",
"ttl": 60000
}
或者创建一个 before remote 方法来更改 ttl
属性,查看这篇文章:
我将 TTL
设置为最长 1 年,但我将 created
字段设置为非常遥远的未来某个时间,例如 2112-10-29 00:00:00-04
。这使得令牌在一个世纪后过期。
默认情况下最大令牌 ttl 为 1 年。值得庆幸的是,Loopback 有一个选项可以让您创建永久访问令牌:
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
) 时,您的令牌都会被替换为一个新令牌。因此,如果您想重复使用相同的访问令牌,只需登录一次。您可以从 AccessToken 模型(或直接从数据库)中获取现有的访问令牌。
如果您有自定义用户模型,可以直接在模型定义文件中设置allowEternalTokens
。此外,如果您有自定义用户模型,您还需要更新 AccessToken 模型(内置模型或自定义模型,如果有的话)的 relations
以指向自定义用户模型.
有关自定义 user/access 代币模型的更多信息,请点击此处:http://loopback.io/doc/en/lb3/Authentication-authorization-and-permissions.html#preparing-access-control-models