symfony2:事前登録および招待システムを備えた安全なユーザー管理(パート1)
この2部構成のシリーズは、Symfony2の認証と承認を調査し、制御されたユーザーアクセスのための事前登録招待システムに焦点を当てています。 Symfony2の堅牢なフレームワークは、詳細なユーザー管理と安全なインタラクションを提供します。
security.yml
電子メールで送信されたユニークな招待コード、招待状の信頼性を確認し、有効期限の問題を防止します。
ROLE_ADMIN
ROLE_USER
ユーザーテーブル構造:
アプリケーションは、SQLデータベースを使用してユーザー資格情報を保存します。テーブルには、
、、(bcryptハッシュ)のフィールドが含まれます。 🎜>。 、
、およびは、認証と承認に不可欠です。
user
id
username
セキュリティ構成(password
):email
created
logged
roles
ファイルは、アプリケーションのセキュリティ設定を構成します:gravatar
active
この構成は、役割に基づいてユーザープロバイダー、パスワードエンコード、ログイン/ログアウトメカニズム、およびアクセス制御ルールを定義します。
homepage
username
password
エンティティ:roles
CREATE TABLE `user` ( `id` INT(255) AUTO_INCREMENT NOT NULL, `username` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL, `password` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL, `email` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL, `created` DATETIME NOT NULL, `logged` DATETIME NULL, `roles` VARCHAR(25) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL, `gravatar` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL, `active` TINYINT(1) NOT NULL, `homepage` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL, PRIMARY KEY (`id`) );
エンティティは、Symfonyのsecurity.yml
初期管理者ユーザーの作成:
security.yml
最初の管理者ユーザーが手動で作成され、オンラインツールを使用してパスワードBcryptがハッシュします。 このユーザーには
security: providers: administrators: entity: { class: AppBundle:User, property: username } encoders: AppBundle\Entity\User: algorithm: bcrypt cost: 12 firewalls: dev: pattern: ^/(_(profiler|wdt|error)|css|images|js)/ security: false default: anonymous: ~ http_basic: ~ form_login: login_path: /login check_path: /login_check logout: path: /logout target: /login access_control: - { path: ^/login, roles: IS_AUTHENTICATED_ANONYMOUSLY } - { path: ^/register, roles: IS_AUTHENTICATED_ANONYMOUSLY } - { path: ^/preregister, roles: IS_AUTHENTICATED_ANONYMOUSLY } - { path: ^/create, roles: IS_AUTHENTICATED_ANONYMOUSLY } - { path: ^/invite, roles: [ROLE_ADMIN] } - { path: ^/, roles: [ROLE_USER, ROLE_ADMIN] }
招待システムにより、管理者は電子メールでユーザーを招待できます。 このプロセスでは、一意のコードを生成し、データベースに保存し、コードとユーザーのメールアドレスを含むリンクを含むメールを送信します。
次のステップ(パート2):
(包括的なFAQセクションは元の入力に含まれており、この出力ではほとんど変わらないままです。
以上がSymfony2事前登録と招待システムの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。