Symfony 3でJWT Authバンドルに問題が発生しました。私はgithub READMEの指示に従ってきましたが、どこが間違っているのか分かりません。間違っている。Symfony LexikJWTAuthenticationBundle認証できません
私は、LexikJWTAuthenticationBundle 2.0 とFriendsofSymfony userbundleを使用して、Symfony 3.1.1を使用しています。
問題: 私は(置換ユーザー名とパスワードを使用)を経由して、その例に指示としてログインしようとするたびに:
curl -X POST http://192.168.33.30/api/login_check -d _username=johndoe -d _password=test
私が手:
{"code":401,"message":"Bad credentials"}
私が発生した場合
$jwtManager = $this->container->get('lexik_jwt_authentication.jwt_manager');
$userManager = $this->container->get('fos_user.user_manager');
$user = $userManager->findUserByEmail('emailhere');
dump($jwtManager->create($user));
私はかなり長いトークンを与えられる。そして、郵便配達員のそれをキー "Authorization"値を持つヘッダーとして使用してください: "Bearer"
次にファイアウォールされたURLの下でエンドポイントを呼び出すと、failure_handlerがトリガーされます。それは、トークンからデータ、すなわちトークンにコード化された電子メールなどをトークンから抽出することを管理する。しかし、私はいつも失敗する。
私の他のデータは次のとおりです。
のsecurity.yml セキュリティ: エンコーダ: FOS \ UserBundle \モデル\たUserInterface:
role_hierarchy:
ROLE_ADMIN: ROLE_USER
ROLE_SUPER_ADMIN: ROLE_ADMIN
# http://symfony.com/doc/current/book/security.html#where-do-users-come-from-user-providers
providers:
in_memory:
memory: ~
fos_userbundle:
id: fos_user.user_provider.username
firewalls:
# disables authentication for assets and the profiler, adapt it according to your needs
dev:
pattern: ^/(_(profiler|wdt)|css|images|js)/
security: false
login:
pattern: ^/api/login
stateless: true
anonymous: true
form_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
api:
pattern: ^/api
stateless: true
guard:
authenticators:
- lexik_jwt_authentication.jwt_token_authenticator
main:
pattern: ^/
form_login:
provider: fos_userbundle
# csrf_token_generator: security.csrf.token_manager
logout: true
anonymous: true
config.yml
lexik_jwt_authentication:
private_key_path: %jwt_private_key_path%
public_key_path: %jwt_public_key_path%
pass_phrase: %jwt_key_pass_phrase%
token_ttl: %jwt_token_ttl%
# key under which the user identity will be stored in the token payload
user_identity_field: email
# token encoding/decoding settings
encoder:
# token encoder/decoder service - default implementation based on the namshi/jose library
service: lexik_jwt_authentication.encoder.default
# crypto engine used by the encoder service
crypto_engine: openssl
# encryption algorithm used by the encoder service
signature_algorithm: RS256
# token extraction settings
token_extractors:
authorization_header: # look for a token as Authorization Header
enabled: true
prefix: Bearer
name: Authorization
cookie: # check token in a cookie
enabled: false
name: BEARER
query_parameter: # check token in query string parameter
enabled: false
name: bearer
ルーティングbcryptの.yml
api_login_check:
path: /api/login_check
ご意見がありましたら教えてください。私はこれで困っている。
。 in_memoryの設定がそこにあった理由は不明です。ありがとうございました! – Greg