Symfony2:使用預註冊和邀請系統(第1部分)
安全用戶管理這個兩部分系列探討了Symfony2中的身份驗證和授權,重點介紹用於控制用戶訪問的預註冊邀請系統。 Symfony2的強大框架提供了詳細的用戶管理和安全的交互。
密鑰功能:
security.yml
> ROLE_ADMIN
ROLE_USER
> >該部分涵蓋數據庫設置和安全配置。 未來的分期付款將詳細介紹註冊和登錄過程,以及後期動作。 我們將基於先前有關Symfony2開發的SitePoint文章。
用戶表結構:
該應用程序使用SQL數據庫來存儲用戶憑據。 表包含,
,的字段(bcrypt hashed),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`) );
):security.yml
security.yml
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] }
實體: AppBundle:User
和User
>接口,為用戶管理提供了必要的方法。 修改了UserInterface
的方法以作為逗號分隔的字符串處理角色,以後允許多個角色。
Serializable
getRoles()
創建初始管理用戶:
>使用在線工具中使用密碼bcrypt-brand-bcrypt-there創建初始管理用戶。 授予該用戶的角色。
邀請系統(第1部分):ROLE_ADMIN
>
邀請系統允許管理員通過電子郵件邀請用戶。 該過程涉及生成唯一代碼,將其存儲在數據庫中,並發送帶有包含代碼和用戶電子郵件地址的鏈接的電子郵件。
下一步(第2部分):
>
常見問題:(原始輸入中包含一個全面的常見問題解答部分,並且在此輸出中基本保持不變。)>
以上是Symfony2預註冊和邀請系統的詳細內容。更多資訊請關注PHP中文網其他相關文章!