したい:
prod env の Gentelella ログイン プロセスからパブリック クレデンシャル admin/password を削除し、
prod env で作成したユーザーでログインできるようにする
ここで提供されている symfony のスケルトンを使用します。
現在、次のようになっています。
fosUserBundle のデータベース テーブルにはユーザー「admin」が残っていませんが、まだ prod env にログインできます。
ユーザーに有効な資格情報を提供してログインすると、403 - アクセスが拒否されましたページが表示されます。このユーザーは、コマンド ライン ツールを使用して追加され、ROLE_ADMIN に昇格されました。
ここでは、単純だが重要な何かが欠けていると思います。
私が試したこと:
dev env (
/app_dev.php/login
) では、すべて正常に動作します。admin/password でログインできませんが、新しく作成したユーザーでログインできます。データベースにユーザー「admin」が残っていません
prod と env のキャッシュをフラッシュしました
プロジェクトフォルダー内のすべてのファイルで「admin」と「password」を検索しましたが、ハードコードされたログインデータが見つかりません。templates/twig で言及されているだけです。
これに関するドキュメントが見つかりません-もちろん、間違ったものを探している可能性があります
Edit2: security.yml
# 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
main:
anonymous: ~
pattern: ^/
form_login:
provider: fos_userbundle
csrf_token_generator: security.csrf.token_manager
# if you are using Symfony < 2.8, use the following config instead:
# csrf_provider: form.csrf_provider
logout: true
anonymous: true
# activate different ways to authenticate
# http_basic: ~
# http://symfony.com/doc/current/book/security.html#a-configuring-how-your-users-will-authenticate
# form_login: ~
# http://symfony.com/doc/current/cookbook/security/form_login_setup.html
encoders:
FOS\UserBundle\Model\UserInterface: bcrypt
role_hierarchy:
ROLE_ADMIN: ROLE_USER
ROLE_SUPER_ADMIN: ROLE_ADMIN
access_control:
- { path: ^/login$, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/register, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/resetting, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/, role: ROLE_ADMIN }