当前位置: 首页 > 知识库问答 >
问题:

Symfony定制用户提供商

周和志
2023-03-14

我正在阅读Symfony通过自定义用户提供商管理用户的方法:https://symfony.com/doc/current/security/custom_provider.html

当用户提交用户名和密码时,身份验证层要求配置的用户提供程序返回给定用户名的用户对象。Symfony然后检查此用户的密码是否正确,并生成安全令牌

当我们在本地使用用户/密码连接到数据库时,这非常有效,但是我想对另一个服务进行身份验证。基本上,我想使用Symfony作为消耗用户登录服务的客户端。我会这样做,除了我不能访问这里的密码。

public function loadUserByUsername($username)
{
    $client = new Client(['base_uri' => $uri]);
    $user_response = $client->get('api/v1/getTokens/', ['auth' => [$username, <passord>]);
    // $user_response 
}

这与Symfony期望的大不相同,Symfony期望接收一个用户对象,然后在用户/密码匹配的情况下发行自己的令牌。

我应该放弃我自己系统的整个自定义提供程序接口吗?

共有1个答案

左丘成业
2023-03-14

您需要一个AuthenticationProvider与您编写的UserProvider一起使用。

还要检查保护身份验证

 类似资料:
  • 我正在使用Symfony Security和系统中的自定义用户提供程序。它通过web服务为用户提供服务。 我根据本教程配置提供程序(http://symfony.com/doc/current/cookbook/security/custom_provider.html). 这里是检查用户的功能: 这很好,函数使用用户名调用一个web服务,然后返回一个包含用户数据的数组。但是现在我需要通过另一个w

  • 我已经构建了一个自定义凭据提供程序,它在Windows SDK中作为示例提供。它在计算机上工作得很好。 当CR安装在远程服务器上,人们通过RDP连接到它时,会两次提示用户输入用户名/密码对,第一次是在本机RDP客户端中,第二次是在自定义凭据提供程序本身中,当用户通过本机RDP客户端成功登录时。 有没有办法获取第一步输入的用户名和密码,并将其写入CR字段。

  • 问题内容: 我在我的Spring启动应用程序中使用JBoss resteasy。如下配置了我的自定义JasonProvider并使用com.fasterxml.jackson。 在我的客户代码中 虽然jsonProvider已注册,但是当我打电话时,它没有调用我的jsonProvider。 引起原因:com.fasterxml.jackson.databind.exc.UnrecognizedPr

  • 我将为我的网站创建自定义用户提供程序,对于用户来说,没有“用户名”和“密码”这样的概念(实际上有类似于密码的东西,但它的名称不同)。在文档中,用户实体必须实现来自安全包的UserInterface,该安全包具有诸如getUsername、getPassword之类的方法。我能用我自己的领域吗?或者我应该使用名称冲突(例如,getUsername将返回我的唯一字段)来实现我的行为吗?

  • 我已经安装了Symfony 3.2。6.当我检查/config时。我在浏览器中看到一条消息: 安装在系统上的intlICU版本已经过时(57.1),与Symfony捆绑的ICU数据不匹配(58.2)要获得最新的国际化数据,请升级ICU系统包和intl PHP扩展。 首先,尝试更新ICU扩展,就像这里描述的那样在xampp中更新ICU扩展?我从PECL下载了合适的包http://site.icu-p

  • 我必须在不同的环境中绑定具有不同值的参数,并且在这方面存在问题。 我在尝试这个: 但它迫使我在services.yaml和services_dev.yaml文件中定义所有服务,否则它不起作用。 我想有一个services.yaml共享的任何环境,并只重写自定义服务/绑定等,而不是有两个相同的文件与所有的服务列在他们改变一个绑定值。 真正的问题是,我必须创建两个具有相同接口的http客户端(real