FOSOAuthServerBundle - 我可以为密码授予类型设置无限的令牌生存期吗?

时间:2016-06-22 11:12:48

标签: oauth-2.0 symfony fosoauthserverbundle

我正在使用password授权类型。根据此授权类型的性质,客户端完全受API控制,在我的情况下,它们共享相同的所有者。

每个客户端都将由API所有者添加到API中,方法是手动发布到oauth/v2/token端点,检索访问令牌,然后手动将其放入客户端数据库中。

使用API​​服务的客户端始终需要API的完全可用性。如果他们的访问令牌过期,他们的API调用将返回401 Unauthorized响应。因此,在API所有者使用刷新令牌手动回发到oauth/v2/token端点,收到新的访问令牌并更新客户端中的新客户端访问令牌之前,API将无法使用。 ; s外部数据库,供他们使用。

我的问题: 理想情况下,我希望Access Token永不过期。这是可能吗?我查看了捆绑中的代码,但似乎没有。如果没有,其他人如何解决这个问题,让令牌能够为客户端无缝刷新?

2 个答案:

答案 0 :(得分:0)

我不知道这是否真的是一个答案或更多的评论,因为虽然它适用于我,但我觉得它远非“最佳实践”。但我没有足够的声誉来发表评论。反正:

我所做的只是在access_token表中手动将'expires_at'设置为null。在phpmyadmin中手动完成它只是因为我需要处理非常少的客户端和令牌。

现在,如果要“自动化”它,请挂钩到AccessToken实体上的pre_persist事件,并在保持之前将'expires_at'设置为null。我想这应该有用。

“最佳做法”可能是在客户端应用程序中处理令牌刷新。也就是说,首先连接到您的API,如果是401响应(未授权),请刷新令牌并重试连接。出于性能原因,我不想尝试这种方法。

答案 1 :(得分:0)

在FOSOAuthServerBundle配置中,您可以将令牌生存期更改为您想要的任何值。

请看:https://github.com/FriendsOfSymfony/FOSOAuthServerBundle/blob/master/Resources/doc/configuration_reference.md