问题标签 [symfony-guard]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
4641 浏览

php - 带保护的 Symfony 身份验证总是返回“找不到用户名”。

我知道关于这个主题有很多线程,但没有一个对我有帮助......

我正在开发一个应用程序,您必须在每个请求的标头中发送访问令牌。我用 Guard 管理这个安全性。

对于我的测试,当我发送一个错误令牌时,或者当我不发送它时,必须适当调用 start() 或 onAuthenticationFailure() 方法。但它不起作用。我每次都有同样的错误。看起来这些方法从未被调用过。

未发送授权

无效的访问令牌

代替:

或者

使用正确的访问令牌,请求会正确返回给用户。

请求示例:

以下是我的代码的重要部分:

安全.yml

FacebookAuthenticator.php

0 投票
2 回答
148 浏览

php - Symfony 针对远程 API 对用户进行身份验证

我有一个问题,或多或少和这个人一样:Symfony 3 authenticate user against remote API

但我的问题是,我该如何处理令牌?

我使用了警卫,我创建了一个 api 服务,我可以在其中检索令牌,但是我可以将它存储在哪里?我想设置一个 cookie,但我无法从我的服务中写入 cookie,否则我将无法启动会话,所以在答案中我不明白:“将令牌存储在前端存储中”。

我真的没有办法将令牌存储在 cookie 中吗?

谢谢!

0 投票
0 回答
477 浏览

symfony - Symfony - 成功登录后保护身份验证器丢失用户

我正在我的 symfony 应用程序中实现一个带有保护身份验证的登录系统。我已经开始实施该系统,但我一定做错了什么。

我将从展示我已经实现的内容开始,最后解释正在发生的事情......

安全.yml

服务.yml

登录控制器

带主页的公共控制器:登录成功后,用户被重定向到这里。碰巧在这里,当验证用户是否经过身份验证时,我不成功。安全令牌中的“getuser”返回“anon”。

最后,我的 FormAuthenticator:

我的用户实体实现了 UserInterface。

尽管在主页上它向我表明我已通过“匿名”身份验证,但如果我尝试再次登录,通过调试,我注意到它检测到我已通过身份验证并重定向到主页控制器,但在此控制器中它说我喜欢匿名并返回重定向到启动页面。

它给人的感觉是在验证和重定向到控制器之间的某个地方丢失了令牌存储。

任何想法?

0 投票
0 回答
145 浏览

symfony - symfony guard 身份验证器没有被调用

我正在使用API 端点中的ldaptools-bundlefosuserbundle

我的 security.yaml 看起来像这样

问题是 ldap 保护身份验证器没有检查凭据。

当我将提供程序更改为 ldap 而不是 fosuser 时,我在 BasePasswordEncoder 类中收到 500 错误代码,如果我使用 chain_provider 也会发生这种情况

警告:hash_equals():期望 known_string 是一个字符串,给定 null

有没有错过配置之类的?工作流程应如下所示:

  • 用户已针对 ldap 服务器进行身份验证
  • 用户被正确加载,然后 lexik 负责生成令牌

注意:工作流在没有 ldap 的情况下工作,并且生成了令牌。

提前致谢!

0 投票
2 回答
1038 浏览

php - Symfony 4 守卫不验证用户

我正在使用 guard 作为我的 symfony 4 flex 应用程序的身份验证层。

每当我输入我的用户名和密码时,它都会自动将我重定向到登录页面,没有错误只会重定向我。在我的日志中,它显示我无法登录,但表单没有显示任何内容

安全.yaml

LoginFormAuthenticator.php

安全控制器.php

login.html.twig

0 投票
1 回答
1892 浏览

authentication - Symfony4 保护验证器不起作用,登录时没有返回错误

我目前正在构建一个带有自定义保护验证器的 Symfony4 应用程序。但是我有一个问题,当我尝试使用登录表单登录时,我没有通过身份验证,也没有收到错误消息。

我尝试了很多方法,例如更改支持功能代码或登录表单,但无法解决问题。

我的配置是 make:auth 命令的“开箱即用”。

如果有人能告诉我我哪里做错了。

提前致谢!

安全控制器

安全

登录表单

自定义身份验证器

0 投票
1 回答
162 浏览

symfony - Symfony 5 处理外部工具的访问(knpsnappy)

在 Symfony 5.x 项目中,我使用 knplabs/knp-snappy-bundle。

拥有不同用户的私有数据文件夹会导致生成 PDF 文档,这些文档需要来自不可公开访问的文件夹中的图像。

当尝试在此类文件夹中生成带有图像的 PDF 文档时,knpsnappy 会出现 60 秒超时。Symfony 日志说

我假设一些关于从应用程序外部但从同一服务器调用的“外部”工具 knpsnappy 调用,但不会触发我定义的任何安全定义。我不确定如何允许 knpsnappy 访问特定路由。也许有人可以引导我走向正确的方向......?

0 投票
1 回答
403 浏览

authentication - Symfony 5 / login-signin / Guard 身份验证

我必须在同一页面中使用 LoginForm 和 RegistrationForm

我正在使用 make:auth 提供的经典 Guard 身份验证

基于Symfony 5 - Multiples forms on same page,我创建了 LoginFormType 并复制了我在 RegistrationController 中的内容。

登录和注册均失败。

安全.yaml:

安全/LoginFormAuthenticator.php

}

安全控制器登录方法

我正在使用: Symfony 5.1.3 PHP 7.3.20(由于某些供应商不兼容,我尚未升级到 7.4) 我正在使用 Symfony 本地服务器,没有 nginx 或 apache 我没有任何 .htaccess 文件

当我在谷歌上搜索时,我发现这可能与会话有关,这就是我添加的原因

框架.yaml:

登录和注册之前分开工作

但是现在当我访问我网站中的任何页面时,我都有这个

登录或注册前的错误

当我尝试登录时

登录后出错

有什么帮助吗???

0 投票
0 回答
47 浏览

php - Symfony Guard 或 Userprovider - 用户名始终为空

我的请求通过 aApiUserAuthenticator extends AbstractGuardAuthenticator来验证对 API 的请求。在 getUser() 方法中,我返回一个 ApiUser。

它运行良好,因为用户在我的控制器中出现得更远一些。

但是一个小细节是错误的,用户名不见了!它返回空值。

转储内容

当然,在简单的 ApiUser 中,构造函数和 getter 都可以。
当您寄回一个Security\Core\User物体时,这种奇怪的现象就会消失!有趣不是吗?

转储内容

0 投票
0 回答
169 浏览

api - OAuth2 Symfony Api 邮递员没有经过警卫身份验证器

我正在使用 Symfony 构建 API,并且添加了 OAuth 身份验证来保护 API。但是当我使用 Postman 测试 API 并尝试获取新的访问令牌时,Postman 不会通过保护身份验证器获取令牌并且不返回任何令牌并且用户未连接。

邮递员 OAuth 配置

但是当我使用前端进行测试时,我访问了要连接的路由(localhost:8000/api/connect/github),然后访问这个路由来获取令牌(localhost:8000/api/access_token/github) 用户已连接我可以在这里看到令牌,但在邮递员身上看不到。

这是我用来将用户与 OAuth 连接的两条路由(在我的 SecurityController 中):

在我的 Authenticator 中,我使用了这两种方法来获取令牌并通过 session 和 headers 传递它:

因此,在我的 SecurityController 的方法 accessToken 中,我尝试在请求标头中获取令牌。它应该给我这样的回报: { "Access Token": "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" }

但在邮递员中,它返回给我这个:

{ "Access Token": null }

所以我猜邮递员没有通过身份验证器,但我不明白为什么,你们有什么解释吗?

非常感谢