首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用API平台(symfony 4)将登录添加到swagger中?

如何使用API平台(symfony 4)将登录添加到swagger中?
EN

Stack Overflow用户
提问于 2019-01-26 17:14:57
回答 2查看 6.7K关注 0票数 0

我安装并配置了LexikJWTAuthenticationBundle,它运行良好,但我遇到了一个小问题。

我已经包含了放置JWT令牌的授权按钮,问题是使用以下命令是我拥有令牌的唯一方法:

代码语言:javascript
复制
curl -X POST -H "Content-Type: application/json" http://localhost:8000/api/login_check -d '{"username":"johndoe","password":"test"}'

它发送我的令牌,我把它放在API中,好的。

第一个问题:当我和邮递员尝试这个请求时,我得到了一个错误:

无法找到路径"/api/login_check“的控制器。路由配置错误。(404未找到)

请求:使用POST方法的localhost:8000/api/login_check?username=johndoe&password=test

所以卷发是有效的,但不是邮递员,为什么?这是我的security.yaml:

代码语言:javascript
复制
security:
encoders:
    App\Entity\User:
        algorithm: argon2i

providers:
    app_user_provider:
        entity:
            class: App\Entity\User
            property: email

firewalls:
    dev:
        pattern: ^/(_(profiler|wdt)|css|images|js)/
        security: false

    login:
        pattern:  ^/api/login
        stateless: true
        anonymous: true
        json_login:
            check_path:               /api/login_check
            success_handler:          lexik_jwt_authentication.handler.authentication_success
            failure_handler:          lexik_jwt_authentication.handler.authentication_failure
            require_previous_session: false

    register:
        pattern:  ^/api/register
        stateless: true
        anonymous: true

    api:
        pattern:  ^/api
        stateless: true
        anonymous: true
        provider: app_user_provider

    main:
        anonymous: true

access_control:
    - { path: ^/api/login, roles: IS_AUTHENTICATED_ANONYMOUSLY }
    - { path: ^/api/register, roles: IS_AUTHENTICATED_ANONYMOUSLY }
    - { path: ^/api, roles: IS_AUTHENTICATED_ANONYMOUSLY }

role_hierarchy:
    ROLE_DELEGATION:        [ROLE_USER]
    ROLE_EXPORT:            [ROLE_USER]
    ROLE_USER_ADMIN:        [ROLE_USER]
    ROLE_LIST_ADMIN:        [ROLE_USER]
    ROLE_IMPORT:            [ROLE_USER]
    ROLE_MOBILE:            [ROLE_USER]
    ROLE_ADMIN:             [ROLE_USER, ROLE_ALLOWED_TO_SWITCH]
    ROLE_SUPER_ADMIN:       [ROLE_USER, ROLE_ALLOWED_TO_SWITCH]

第二个问题,我想在Swagger中添加登录。如下所示:

我不知道如何做到这一点,我试着在LoginCheckController中添加@ApiRessource(),但是它什么也没做。

需要一些帮助/提示,提前谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-01-27 15:25:45

404消息告诉您,要么没有定义/api/login_check的路由,要么它有配置问题,并且没有找到路由,您应该先找到检查和调试您的路由,看看是否已经定义好了

代码语言:javascript
复制
login_check:
path: /login_check

您可能还需要检查这个GitHub问题

稍后编辑:在进一步研究之后,我找到了一个解决这里是Stackoverflow问题的可能方法。

票数 1
EN

Stack Overflow用户

发布于 2019-01-26 18:51:56

只需将防火墙登录放在第一位,在下面的例子中。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54380730

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档