gpt4 book ai didi

symfony - 无法使用 Symfony 4 注销

转载 作者:行者123 更新时间:2023-12-01 11:18:07 26 4
gpt4 key购买 nike

我无法注销用户。

我将自定义用户管理逻辑移植到 Symfony 4 项目中。它使用 security 的食谱和 guard .

这是logout在我的主防火墙中配置:

    logout:
path: /logout
target: /

结果:
- 用户转到/logout
- 用户被重定向到/
- is_granted("IS_AUTHENTICATED_REMEMBERED")继续返回 true在我的模板中(预计 false)

其他注意事项:
- 防火墙条目被触发,因为如果我删除它我会收到错误
- 我曾尝试向 logout 添加其他参数销毁 session 和 cookie,但这没有任何区别
- 登录工作正常

关于如何解决这个问题的任何想法?

::编辑 - 添加 security.yaml按照要求::
security:
encoders:
App\Entity\User: bcrypt
role_hierarchy:
ROLE_ADMIN: ROLE_USER
ROLE_SUPER_ADMIN: ROLE_ADMIN
providers:
app_users:
entity: { class: App\Entity\User, property: email }
app_oauth:
id: app.oauth_user_provider
firewalls:
dev:
pattern: ^/(_(profiler|wdt)|css|images|js)/
security: false
main:
provider: app_users
anonymous: ~
oauth:
resource_owners:
google: "/login/check-google"
default_target_path: /
login_path: /
failure_path: /login
oauth_user_provider:
service: app.oauth_user_provider
remember_me:
secret: "%env(APP_SECRET)%"
lifetime: 2592000
path: /
guard:
authenticators:
- App\Security\LoginFormAuthenticator
entry_point: App\Security\LoginFormAuthenticator
logout:
path: /logout
target: /
switch_user: ~

最佳答案

添加这些命令

在 security.yaml

logout:
path: /logout
target: /
invalidate_session: true

在 Controller 中
    /**
* @Route("/logout", name="logout")
*/
public function logout()
{

}

在注销按钮
<a class="text-muted" href="{{ path('logout') }}">logout </a>

关于symfony - 无法使用 Symfony 4 注销,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47911336/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com