Thé*_*héo 5 symfony jwt symfony-2.7 lexikjwtauthbundle
我正在尝试在我的Symfony 2.7应用程序上使用LexikJWTAuthenticationBundle和FOSUserBundle.
基本上,FOSUserBundle配置工作正常:我正确加载我的灯具,如果我尝试通过登录表单登录它成功.
从login_check获取令牌也有效.然后我在头文件中放置了带有"Bearer"的Authorization标头,并尝试访问另一个页面.它总是会产生401响应.
谁有任何关于可能是什么问题或如何进行调试的线索?
这是我的配置:
# app/config/config.yml
# DunglasJsonLdApi
dunglas_json_ld_api:
title: %api_name%
description: %api_description%
default:
order: DESC
# FOSUserBundle
fos_user:
db_driver: orm
firewall_name: api
user_class: ApiBundle\Bundles\UserBundle\Entity\User
# LewikJWTAuthentificationBundle
lexik_jwt_authentication:
private_key_path: %kernel.root_dir%/config/jwt/private.pem
public_key_path: %kernel.root_dir%/config/jwt/public.pem
pass_phrase: %jwt_pass_phrase%
token_ttl: 86400
Run Code Online (Sandbox Code Playgroud)
# app/config/routing.yml
# DunglasJsonLdBundle
api_doc:
resource: @DunglasJsonLdApiBundle/Resources/config/routing.xml
prefix: /api
api:
resource: .
type: json-ld
prefix: /api
# FOSUserBundle
fos_user_security_login:
path: /login
defaults: { _controller: FOSUserBundle:Security:login }
fos_user_security_check:
path: /api/login_check
defaults: { _controller: FOSUserBundle:Security:check }
fos_user_security_logout:
path: /logout
defaults: { _controller: FOSUserBundle:Security:logout }
Run Code Online (Sandbox Code Playgroud)
# app/config/security.yml
security:
encoders:
FOS\UserBundle\Model\UserInterface: sha512
role_hierarchy:
ROLE_CA: ROLE_USER
ROLE_SUPER_ADMIN: [ ROLE_CA, ROLE_ALLOWED_TO_SWITCH ]
providers:
fos_userbundle:
id: fos_user.user_provider.username_email
firewalls:
dev:
pattern: ^/(_(profiler|wdt|error)|css|images|js)/
security: false
login:
pattern: ^/login|^/api/login
provider: fos_userbundle
stateless: true
anonymous: true
form_login:
login_path: fos_user_security_login
check_path: fos_user_security_check
username_parameter: username
password_parameter: password
success_handler: lexik_jwt_authentication.handler.authentication_success
failure_handler: lexik_jwt_authentication.handler.authentication_failure
require_previous_session: false
api:
pattern: ^/api
provider: fos_userbundle
stateless: true
anonymous: true
lexik_jwt:
access_control:
- { path: ^/login$, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/api/login$, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/register, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/resetting, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/, role: IS_AUTHENTICATED_FULLY }
Run Code Online (Sandbox Code Playgroud)
提供完整的应用在这里.
它现在似乎工作正常.自从我发布问题之后我没有改变任何东西,在发布之前我重启了我的机器,重新启动了MySQL,nginx,PHP5-FPM并删除了Symfony缓存,所以我真的不明白发生了什么......
| 归档时间: |
|
| 查看次数: |
5695 次 |
| 最近记录: |