Rumah  >  Artikel  >  rangka kerja php  >  Bagaimana untuk menggunakan operasi kuasa pengesahan Auth dalam ThinkPHP6?

Bagaimana untuk menggunakan operasi kuasa pengesahan Auth dalam ThinkPHP6?

WBOY
WBOYasal
2023-06-12 08:23:152149semak imbas

Dengan pembangunan aplikasi Internet, pengurusan kebenaran telah menjadi bahagian yang amat diperlukan dalam pembangunan aplikasi. Semasa proses pembangunan, kami perlu memberikan kebenaran yang berbeza kepada pengguna yang berbeza untuk mencapai keselamatan data dan kawalan kebenaran operasi. Operasi kebenaran pengesahan Auth dalam rangka kerja ThinkPHP6 memberikan kami penyelesaian yang mudah dan mudah digunakan.

Apakah operasi kebenaran pengesahan Pengesahan?

Auth ialah pemalam pengurusan kebenaran dalam rangka kerja ThinkPHP6 Ia melaksanakan mekanisme pengurusan kebenaran yang cekap dan boleh dikawal dengan mentakrif dan mengurus peranan, pengguna, kebenaran, peraturan, dsb. Kelebihannya termasuk operasi mudah, kebolehsuaian yang kuat, kebolehkawalan yang tinggi, dan kebolehskalaan yang baik Ia digunakan secara meluas dalam aplikasi peringkat perusahaan.

Di sini kami menerangkan cara menggunakan Auth untuk melaksanakan pengurusan kebenaran dalam ThinkPHP6.

Mekanisme kuasa pengesahan

Sebelum menggunakan Auth, kita perlu memahami mekanisme kuasa pengesahannya. Peranan, pengguna, kebenaran, peraturan dan konsep lain ditakrifkan seperti berikut:

  1. Peranan: merujuk kepada unit kebenaran yang memberikan kebenaran kepada satu atau lebih pengguna.
  2. Pengguna: Individu dalam sistem, yang boleh menjadi pengguna sebenar atau akaun sistem.
  3. Kebenaran: merujuk kepada tingkah laku operasi yang dibenarkan untuk pengguna (atau peranan), serupa dengan tetapan kebenaran dalam pangkalan data.
  4. Peraturan: merujuk kepada menetapkan beberapa sekatan untuk kebenaran, seperti sekatan tempoh masa, IP terhad, dsb.

Secara khusus, kita boleh mentakrifkan beberapa kebenaran biasa seperti berikut:

  1. Kebenaran menu: merujuk kepada kawalan akses menu tertentu aplikasi, yang membolehkan berbeza Pengguna melihat item menu yang berbeza.
  2. Kebenaran operasi: merujuk kepada kawalan capaian untuk gelagat operasi tertentu aplikasi, yang membolehkan pengguna yang berbeza mempunyai kebenaran operasi yang berbeza.
  3. Kebenaran data: merujuk kepada mengawal akses kepada data tertentu dalam aplikasi, yang boleh menyekat pengguna untuk hanya melihat atau mengubah suai data yang dikaitkan dengannya.
  4. Kebenaran medan: merujuk kepada kawalan akses medan tertentu dalam aplikasi, yang boleh menyekat pengguna untuk hanya melihat atau mengubah suai medan yang dikaitkan dengannya.

Pelaksanaan operasi kebenaran pengesahan

Dengan konsep asas mekanisme kebenaran pengesahan, kami boleh memulakan operasi kebenaran pengesahan Pengesahan dalam ThinkPHP6.

  1. Pasang pemalam Auth

Mula-mula kita perlu memastikan bahawa pemalam Auth telah dipasang dalam aplikasi, yang boleh dipasang melalui arahan berikut :

composer require topthink/think-auth
  1. Pengenalan Auth middleware

Menggunakan Auth dalam aplikasi memerlukan penggunaan middleware, yang dikonfigurasikan dalam config/middleware.php:

rreee
  1. Tentukan peraturan kebenaran

Semasa permulaan aplikasi, kita perlu menentukan beberapa peraturan kebenaran, yang akan digunakan untuk pengesahan kebenaran, contohnya:

return [
    //全局中间件列表
    'global' => [
            hinkmiddlewareSessionInit::class,
            hinkmiddlewareLoadLangPack::class,
            hinkmiddlewareCheckRequestCache::class,
            hinkmiddlewareSendFile::class,
    ],
    //中间件别名
    'alias' => [
        'auth' =>     hinkmiddlewareAuth::class,
    ],
];

Dalam kod di atas , kami mentakrifkan peraturan kebenaran pengurusan pengguna asas, Tanpa kebenaran ini, operasi pengawal yang sepadan tidak boleh diakses.

  1. Peranan dan kebenaran pengguna

Kami perlu memberi kebenaran kepada peranan dan pengguna dalam aplikasi, yang boleh dibenarkan apabila aplikasi dimulakan:

use thinkacadeAuth;

//定义规则
Auth::rule('admin.user/index', 'checkAdmin');
Auth::rule('admin.user/add', 'checkAdmin');
Auth::rule('admin.user/edit', 'checkAdmin');
Auth::rule('admin.user/del', 'checkAdmin');

dalam Dalam kod di atas, kami mentakrifkan peranan bernama pentadbir dan menetapkan peraturan kebenaran yang sepadan. Kemudian kami menentukan pengguna bernama pentadbir, yang mempunyai peranan pentadbir, membenarkan kebenaran admin.user/add dan mengalih keluar kebenaran admin.user/del.

  1. Pengesahan

Sebelum kami melaksanakan pengesahan kebenaran, kami boleh menilai dahulu peranan, pengguna, kebenaran, dll. dalam pengawal:

//定义角色
Auth::group('admin', function () {
    //设置角色权限
    Auth::setRule([
        'admin.user/index',
        'admin.user/add',
        'admin.user/edit',
        'admin.user/del',
    ]);
});

//定义用户并授权
Auth::user('admin', function () {
    Auth::addToGroup('admin')//添加角色
        ->addPermission(['admin.user/add'])//添加权限
        ->removePermission(['admin.user/del']);//移除权限
});

Dalam kod di atas, kami melakukan pengesahan log masuk pengguna, pengesahan pentadbir super, pengesahan peranan dan kebenaran, dsb., dan akhirnya kembali ke halaman yang sepadan atau lompat.

Ringkasan

Melalui operasi di atas, kami boleh menggunakan operasi kebenaran pengesahan Auth dalam rangka kerja ThinkPHP6 untuk mencapai pengurusan kebenaran aplikasi yang mudah, cekap dan boleh dikawal, memastikan keselamatan data dan kawalan kebenaran operasi. Semasa penggunaan, untuk memastikan keselamatan aplikasi, kami perlu menetapkan pelbagai peraturan kebenaran dengan teliti, mengehadkan kebenaran pengguna dan peranan yang sepadan, dan meningkatkan kebolehskalaan dan kebolehkawalan aplikasi.

Atas ialah kandungan terperinci Bagaimana untuk menggunakan operasi kuasa pengesahan Auth dalam ThinkPHP6?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn