微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

将 lexikJWTAuthentification 包含到现有的 symfony 项目

如何解决将 lexikJWTAuthentification 包含到现有的 symfony 项目

我会尽量说一口流利的英语,并用简单的话解释我的“问题”。

所以基本上,我想要做的是在现有项目上使用 lexikJWTAuthentification。

在这个项目中,我有自己的 RestAPI。在这一点上,我有很多路线,而且我实际上是在没有任何限制/认证的情况下使用它们。

我已经有一个登录路由,它有效,我的意思是,它会判断用户是否存在,以及给定的凭据是否正确。

我想在用户登录生成一个 JWT,然后根据用户角色使用它来授予访问某些路由的权限。

我遵循了 github 上的 bundle 文档。我用密码创建了两个密钥,实际上我在我的 API 上阻止了我当前的所有路由,并显示“权限被拒绝”。所以我想它是有效的。

但是我做错了,我不知道如何使用我自己的登录控制器而不是捆绑包提供的“基本”登录

在我的 routes.yaml 中,我只是按照配置步骤看到的基本内容

login:
   path: /login
   methods: ['POST']
login:
   path: /login
   controller: App\Controller\AudioController::login

但是我没有在我的 ClientController(路径:/login)中引用我的“登录方法

编辑:尝试了第二个版本和一些变体,但无法正常工作

我应该如何在那里引用我的控制器,然后修改我的登录方法以检索我的 JWT?

实际上,我的方法只是在常规 JSON 中检索我的客户端信息。

感谢您阅读本文,抱歉,如果缺少某些信息,如果需要,请随时向我询问:)

这是我的第二次编辑,因为我觉得我的帖子很烂,所以有我的 security.yaml 以获取更多信息:


security:
    # https://symfony.com/doc/current/security.html#where-do-users-come-from-user-providers
    providers:
        users_in_memory: { memory: null }
    firewalls:
        dev:
            pattern: ^/(_(profiler|wdt)|css|images|js)/
            security: false
        main:
            anonymous: true
            json_login:
                check_path: /login
                username_path: email
                password_path: password
                success_handler: lexik_jwt_authentication.handler.authentication_success
                failure_handler: lexik_jwt_authentication.handler.authentication_failure
            guard:
                authenticators:
                    - lexik_jwt_authentication.jwt_token_authenticator    

            # activate different ways to authenticate
            # https://symfony.com/doc/current/security.html#firewalls-authentication

            # https://symfony.com/doc/current/security/impersonating_user.html
            # switch_user: true

    # Easy way to control access for large sections of your site
    # Note: Only the *first* access control that matches will be used
    access_control:
        - { path: ^/login,roles: IS_AUTHENTICATED_ANONYMOUSLY }
        - { path: ^/,roles: IS_AUTHENTICATED_FULLY }


版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。