【问题标题】:How to use the refresh token in SugarCRM?如何在 SugarCRM 中使用刷新令牌?
【发布时间】:2019-06-23 13:53:34
【问题描述】:

我正在将 SugarCRM 集成到我们的产品中。我在初始身份验证步骤中遇到了一个小问题。 当我使用用户名和密码(密码授予)进行身份验证时,我会收到类似这样的响应。

{
    "access_token": "de236c59-...",
    "expires_in": 14400,
    "token_type": "bearer",
    "scope": null,
    "refresh_token": "58113dbf-...",
    "refresh_expires_in": 14399,
    "download_token": "411000d2-..."
}

现在,每次我刷新令牌时,我都会获得一个新的访问令牌和一个新的刷新令牌。新的访问令牌有效期为14400,但新的刷新令牌的有效期与前一个相同,我必须每四个小时再次使用用户名和密码才能获得新的刷新和访问令牌。

我希望从用户那里获取用户名和密码并且根本不存储它,而是只使用刷新令牌直到它被撤销(类似于授权代码流)。这个密码授权是否违背了 OAuth2 的目的,即我们不必向第三方显示我们的密码?

如果此刷新令牌的有效性小于此处的访问令牌,那么拥有此刷新令牌是否有意义?

【问题讨论】:

  • 您使用的是什么 API?谷歌/Office365?
  • @AshishDwivedi 我正在使用 SugarCRM Rest API。

标签: rest api oauth-2.0 authorization sugarcrm


【解决方案1】:

我们可以在 config_override.php 文件中管理所有令牌的到期日期。

access_token 生命周期应小于 refresh_token 生命周期。

//控制access_token的生命周期

$sugar_config['oauth2']['access_token_lifetime'] = 1800;

//操作refresh_token的生命周期

$sugar_config['oauth2']['refresh_token_lifetime'] = 3600;

如果你想在固定时间后显式地让用户的会话过期,那么你可以使用这个:

$sugar_config['oauth2']['max_session_lifetime'] = 1209600;

【讨论】:

    猜你喜欢
    • 2021-06-19
    • 2020-07-12
    • 2021-11-23
    • 2020-10-06
    • 2017-10-25
    • 2016-09-23
    • 2014-09-13
    • 1970-01-01
    • 2019-06-29
    相关资源
    最近更新 更多