我在 SYMFONY 4.3 应用程序中使用第三方 REST API。 我的应用程序需要在任何请求之前检查令牌是否有效。 什么时候是检查令牌是否有效以及如果不在 symfony 中请求之前尝试刷新的最佳位置? symfony 中的任何 before 请求过滤器存在吗? 或者当我可以获取所有请求时是否有全局对象,如果标头是 401 我可以执行特定操作

现在我在我的应用程序中有中心点,所有请求都通过这个函数传递。 但是将来当我将有其他请求未通过此函数传递时,我必须创建下一个函数等……并且我正在搜索放置 isTokenValid 代码的位置,我正在考虑“在向 API 发出任何请求之前调用此函数”之类的地方

我应该使用它吗? https://symfony.com/doc/current/event_dispatcher/before_after_filters.html#token-validation-example

public function prepareRequest($method, $endPoint) {
.........

// Users can have many tokens connected to different accounts on third party app
 $apiTokens = $user->getApiTokens();

 /** @var ApiToken $apiToken */
 foreach ($apiTokens as $apiToken) {
    if ($this->isTokenValid($apiToken)) {
       ............. make request with specifed apiToken
}


 public function isTokenValid(ApiToken $token): bool
{
  if token is not valid return false
  if token date expired try to refresh token
  if token is not valid or refreshing token fails return false else return true

}

#1楼 票数:2

我想建议的解决方案是使用lexik/jwt-bundle我几乎在我所有的前端身份验证项目中都使用它,例如您可以自定义默认响应(未找到 JWT 令牌/无效)以返回响应你渴望。 您可以为您的目的创建匿名真或假路由我猜即使您的令牌过期,匿名也应该是真的,您将延长其生命周期。 如果您想要一些见解,请对此答案发表评论,我会尽我所能提供

  ask by mihau translate from so

未解决问题?本站智能推荐:

1回复

MarketoRESTAPI资产令牌是否有效?

我正在关注文档的这一部分: http : //developers.marketo.com/rest-api/assets/tokens/我总是得到以下错误:字段不能为空。 有没有人让它工作? Content-Type标题的原因是Marketo的建议: https ://www.scre
1回复

如何检查API令牌是否仍然有效

我正在为我的API使用令牌,问题是当令牌无效 (生存时间<0)时,您将无法知道它,因此您继续填写表格,只有提交后,您才能消息“ invalid token”,这确实很烦人。 我的想法是编写一个脚本,例如,每10秒检查一次令牌的生存时间,然后,如果它无效,我可以例如禁用表格或显示一个框来强
1回复

SymfonyCSRF无效令牌:URL中的令牌与表单中的令牌不匹配

我想在 Symfony 中实现一个表单来为我过滤数据集。 我的 twig 文件的摘录以及用于表单的 FilterType 如下所示。 列表.html.twig 过滤器类型.php 出于某种原因,我收到以下错误消息,表明我的 CSRF 令牌无效。 CSRF 无效错误信息仔细查看后,我怀疑是错误引起的
1回复

订阅者中的Symfony令牌为空

我为需要访问当前登录用户的 prePersist 和 preFlush 事件创建了一个侦听器: 但令牌始终为空。 所以我对控制器中的现有内容进行了一些验证: 并且用户可以很好地检索 $this->getUser(); 紧随其后的行,我的 dataBaseSubscriber 已启动,并且在构造
2回复

根据日期时间生成CSRF令牌依赖

在Symfony 2中是否存在某种在每次渲染表单时生成CSRF令牌的方式? 在我的控制器中,我尝试了以下操作: 所有的时间都在我的请求权令牌哈希中。 但是在bindRequest更改为由parameters.ini和isValid方法中的安全字符串生成的默认哈希之后,肯定会返回FALSE
1回复

Symfony2中的Token_storage没有令牌

在Symfony2中,我将@ security.token_storage传递给注册为服务的侦听器。 我这样做是为了多种服务。 在一种情况下,token_storage没有方法getToken()。 我不明白为什么,因为用户已登录并且其他服务可以访问它。 我这样注册了我的服务:
5回复

Symfony2唯一令牌生成器

我正在开发一个网站,当表单提交给MySQL时我需要一种创建令牌的方法,它需要是唯一的,比如ID列。 例如,当我提交表单时,它会向DB插入表单数据加上Token = TXXXXXX或者其他什么,实际上,格式将取决于某些东西,但我想我可以自己处理它,我只需要创建方式DB内的唯一令牌......
1回复

symfony3.4webserviceuserprovider令牌为空

我是symfony开发的新手。 我需要通过用restapi验证连接来进行连接。 一切顺利,可以使用restapi恢复登录名和密码。 如果我输入了错误的密码,那么凭证是错误的。 如果输入了正确的密码,则会在登录页面上循环。 令牌似乎是空的,我总是以匿名身份而不使用它。 这是我的代