symfony - 如何使用 API PLATFORM(symfony 4)将登录添加到招摇 UI?
问题描述
我安装并配置了 LexikJWTAuthenticationBundle,它工作正常,但我遇到了一个小问题。
我已经包含了用于放置 JWT 令牌的授权按钮,问题是我可以获得令牌的唯一方法是使用以下命令:
curl -X POST -H "Content-Type: application/json" http://localhost:8000/api/login_check -d '{"username":"johndoe","password":"test"}'
它发送我的令牌,我把它放在 API 中,好的。
第一个问题:当我用 POSTMAN 尝试这个请求时,我得到一个错误:
找不到路径“/api/login_check”的控制器。路由配置错误。(404 未找到)
请求:localhost:8000/api/login_check?username=johndoe&password=test with POST 方法
所以使用 curl 它可以工作,但不能使用 POSTMAN,为什么?这是我的security.yaml:
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]
我不知道该怎么做,尝试在 LoginCheckController 中添加 @ApiRessource() 但它什么也没做。
需要一些帮助/提示,在此先感谢
解决方案
404 消息告诉您没有定义路由/api/login_check
或存在配置问题并且找不到路由您应该首先检查并调试您的路由,看看是否已经定义
login_check:
path: /login_check
您可能还想查看这个GitHub 问题
稍后编辑:在研究了更多之后,我在 Stackoverflow 上找到了解决您问题的可能方法
推荐阅读
- c# - 我需要将数据从表传递到后处理程序
- haskell - 无法使用持久性和“catch”函数捕获 Sql 异常
- laravel - 在注册相关表中添加默认用户设置,Laravel
- php - PHP - Imap_Open 非常慢
- java - 我无法从组合框中获得选择
- c# - Xamarin Forms C# ListView 搜索
- angular - 角度集成测试:如何在 MouseEvent 上指定目标
- android - 使用 Xamarin Android RecyclerView 时如何确定“活动”视图
- reactjs - 使用 Redux Saga 从 API 获取信息
- makefile - ifeq 条件和 Makefile