Rumah >pembangunan bahagian belakang >tutorial php >Symfony2 Pra-Pendaftaran dan Sistem Jemput
Symfony2: Pengurusan Pengguna Selamat dengan Sistem Pra-Pendaftaran dan Jemputan (Bahagian 1)
Siri dua bahagian ini meneroka pengesahan dan kebenaran dalam Symfony2, yang memberi tumpuan kepada sistem jemputan pra-pendaftaran untuk akses pengguna terkawal. Rangka kerja teguh Symfony2 menyediakan pengurusan pengguna terperinci dan interaksi yang selamat.
Ciri -ciri Utama:
security.yml
ROLE_ADMIN
) Untuk menentukan keizinan akses untuk URI yang berbeza. ROLE_USER
Bahagian 1: Persediaan dan Konfigurasi
Bahagian ini merangkumi persediaan pangkalan data dan konfigurasi keselamatan. Ansuran masa depan akan terperinci pendaftaran dan proses log masuk, bersama-sama dengan tindakan pasca login. Kami akan membina artikel SitePoint sebelumnya mengenai pembangunan Symfony2.
Struktur Jadual Pengguna:
, user
(bcrypt hashed), id
, username
, password
, email
, created
, logged
, dan roles
. gravatar
, active
, dan homepage
sangat penting untuk pengesahan dan kebenaran. username
password
roles
<code class="language-sql">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`) );</code>
fail security.yml
mengkonfigurasi tetapan keselamatan aplikasi:
Konfigurasi ini mentakrifkan penyedia pengguna, pengekodan kata laluan, mekanisme log masuk/logout, dan peraturan kawalan akses berdasarkan peranan. security.yml
<code class="language-yaml">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] }</code>
entiti:
entiti memanjangkan antara muka Symfony AppBundle:User
dan , menyediakan kaedah yang diperlukan untuk pengurusan pengguna. Kaedah
User
UserInterface
Mewujudkan Pengguna Admin Awal: Serializable
getRoles()
Pengguna pentadbir awal dibuat secara manual, dengan kata laluan bcrypt-hashed menggunakan alat dalam talian. Pengguna ini diberikan peranan
Sistem jemputan (Bahagian 1):
Sistem jemputan membolehkan pentadbir menjemput pengguna melalui e -mel. Proses ini melibatkan menghasilkan kod unik, menyimpannya dalam pangkalan data, dan menghantar e -mel dengan pautan yang mengandungi kod dan alamat e -mel pengguna.
Langkah Seterusnya (Bahagian 2):
Bahagian 2 akan meliputi proses pendaftaran dan log masuk, bersama-sama dengan tindakan pasca login seperti mengemas kini timestamp login terakhir.
Soalan -soalan yang sering ditanya: (bahagian FAQ yang komprehensif dimasukkan ke dalam input asal, dan masih tidak berubah dalam output ini.)
Atas ialah kandungan terperinci Symfony2 Pra-Pendaftaran dan Sistem Jemput. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!