修改API OAuth令牌过期时间

时间:2019-06-25 18:12:00

标签: rest oauth acumatica

Acumatica版本:2019R1

我希望使用Acumatica中的Connected Application修改授予的OAuth令牌的到期时间。目前,我的令牌是使用'api'和'offline_access'范围授予的,以便能够访问API并获取刷新令牌。

我正在尝试避免使用任何类型的基于会话/ cookie的身份验证,因为我的系统将仅从完整的外部来源与Acumatica REST API进行交互,并且无法存储任何与会话/ cookie相关的数据。

我的最终目标是允许我的应用程序使用特定的令牌进行绝对的并发访问,而无需刷新,但是更长的到期时间很可能就足够了。

作为背景知识,我查看了所有帮助文档,并通过每一个Acumatica开发人员培训课程进行了学习,但是它们都没有明确说明OAuth协议是否可编辑。

我在https://tools.ietf.org/html/rfc6749的OAuth 2.0框架文档中进行了介绍,但是虽然它表明可以修改令牌的有效期限/完全删除该有效期限,但是它没有有关如何进行修改的具体信息,因为Acumatica实施了该框架。

以下是发送以授予初始令牌的x-www-form-urlencoded请求正文:

grant_type: <password>
client_id: <applicationID>@<company>
client_secret: <secret>
username: <username>
password: <password>
scope: api offline_access

这是从初始令牌请求以及每个刷新令牌的请求中收到的响应:

{
    "access_token": "<accesstoken>",
    "expires_in": 3600,
    "token_type": "Bearer",
    "refresh_token": "<refreshtoken>"
}

1 个答案:

答案 0 :(得分:0)

根据我的搜索,似乎Acumatica使用IdentityServer3来为连接的应用程序实现OAuth API。通过SM303010屏幕输入客户端,您可以在其中设置ClientSecrets和RedirectURI。 IdentityServer3中要修改的属性为AccessTokenLifetime。

https://identityserver.github.io/Documentation/docsv2/configuration/clients.html

默认情况下为3600秒(一小时),似乎没有给您任何修改的入口点。

我会与支持小组进行验证,但是如果该支持不可用,您可以随时请求在https://feedback.acumatica.com上添加该功能