Rumah >pembangunan bahagian belakang >tutorial php >Langkah untuk melaksanakan kawalan kebenaran menggunakan rangka kerja CakePHP

Langkah untuk melaksanakan kawalan kebenaran menggunakan rangka kerja CakePHP

WBOY
WBOYasal
2023-07-29 17:41:151082semak imbas

Langkah untuk melaksanakan kawalan kebenaran menggunakan rangka kerja CakePHP

Kawalan kebenaran ialah ciri penting semasa membangunkan aplikasi web. Rangka kerja CakePHP menyediakan cara yang mudah dan berkuasa untuk melaksanakan kawalan kebenaran. Artikel ini akan memperkenalkan langkah-langkah untuk melaksanakan kawalan kebenaran menggunakan rangka kerja CakePHP dan menyediakan beberapa contoh kod untuk membantu anda memahami dengan lebih baik.

Langkah 1: Pasang rangka kerja CakePHP

Mula-mula, anda perlu memasang rangka kerja CakePHP dalam persekitaran pembangunan anda. Anda boleh memasangnya melalui Komposer atau memuat turun kod sumber rangka kerja dari tapak web rasmi. Setelah pemasangan selesai, anda boleh membuat aplikasi CakePHP baharu.

Langkah 2: Konfigurasikan komponen kawalan kebenaran

Dalam rangka kerja CakePHP, kawalan kebenaran dilaksanakan melalui komponen yang dipanggil AuthComponent. Komponen ini memudahkan untuk melaksanakan kawalan kebenaran dalam pengawal aplikasi anda. Anda perlu mendayakan AuthComponent dalam fail konfigurasi aplikasi anda dan mengkonfigurasi beberapa tetapan kawalan kebenaran asas.

// 在AppController.php文件中
public function initialize()
{
    parent::initialize();
    $this->loadComponent('Auth', [
        'authorize' => 'Controller',
        'authenticate' => [
            'Form' => [
                'fields' => [
                    'username' => 'email',
                    'password' => 'password'
                ]
            ]
        ],
        'loginAction' => [
            'controller' => 'Users',
            'action' => 'login'
        ],
        'unauthorizedRedirect' => $this->referer()
    ]);
}

Dalam kod di atas, kami memuatkan AuthComponent dengan memanggil kaedah loadComponent. Pilihan benarkan digunakan untuk menentukan cara melaksanakan pengesahan kebenaran. Dalam contoh ini, kami menggunakan peraturan pengesahan di peringkat pengawal. loadComponent方法来加载AuthComponent。authorize选项用于指定如何进行权限验证。在本例中,我们将验证规则应用到控制器级别。

authenticate选项用于指定用户身份验证使用的字段和模型。在本例中,我们使用表单认证,并设置了表单字段名。

loginAction选项是当未经授权的用户访问需要权限的操作时,将被重定向到的登录页面。

unauthorizedRedirect选项是在未经授权的情况下重定向的URL。

步骤三:定义权限规则

在应用程序中,你需要定义权限规则以确定哪些用户可以执行特定的操作。在CakePHP框架中,你可以在控制器中使用isAuthorized方法来定义权限规则。

// 在 UsersController.php文件中
public function isAuthorized($user)
{
    $action = $this->request->getParam('action');

    if (in_array($action, ['edit', 'delete'])) {
        $userId = $this->request->getParam('pass.0');
        if ($userId == $user['id']) {
            return true;
        }
    }

    return parent::isAuthorized($user);
}

在上述代码中,我们首先获取当前请求的操作。然后,我们检查当前操作是否是需要权限的操作。如果是,我们将获取操作所需要的参数,并与当前用户的ID进行比较。如果用户ID与参数匹配,我们将返回true,允许用户执行该操作。

步骤四:在视图中显示授权链接

当权限控制设置完成后,我们可以在视图文件中显示相应的授权链接。在CakePHP框架中,使用Auth组件中的user方法来检查用户是否经过授权。

// 在视图文件中
if ($this->Auth->user()) {
    echo $this->Html->link('Logout', ['controller' => 'Users', 'action' => 'logout']);
} else {
    echo $this->Html->link('Login', ['controller' => 'Users', 'action' => 'login']);
}

在上述代码中,我们首先使用Auth组件的user方法来检查用户是否经过授权。如果用户经过授权,我们将显示一个“Logout”链接,指向Users控制器的logout操作。如果用户未经授权,我们将显示一个“Login”链接,指向Users控制器的login

Pilihan sahkan digunakan untuk menentukan medan dan model yang digunakan untuk pengesahan pengguna. Dalam contoh ini, kami menggunakan pengesahan borang dan menetapkan nama medan borang.

Pilihan loginAction ialah halaman log masuk yang akan diubah hala apabila pengguna yang tidak dibenarkan mengakses tindakan yang memerlukan kebenaran. 🎜🎜Pilihan unauthorizedRedirect ialah URL yang diubah hala tanpa kebenaran. 🎜🎜Langkah Tiga: Tentukan Peraturan Kebenaran🎜🎜Dalam aplikasi anda, anda perlu menentukan peraturan kebenaran untuk menentukan pengguna yang boleh melakukan tindakan tertentu. Dalam rangka kerja CakePHP, anda boleh menggunakan kaedah isAuthorized dalam pengawal untuk menentukan peraturan kebenaran. 🎜rrreee🎜Dalam kod di atas, kami mula-mula mendapat operasi yang diminta. Kami kemudian menyemak sama ada operasi semasa adalah operasi yang memerlukan kebenaran. Jika ya, kami mendapat parameter yang diperlukan untuk operasi dan membandingkannya dengan ID pengguna semasa. Jika ID pengguna sepadan dengan parameter, kami akan mengembalikan true, membolehkan pengguna melakukan tindakan tersebut. 🎜🎜Langkah 4: Paparkan pautan kebenaran dalam paparan🎜🎜Selepas tetapan kawalan kebenaran selesai, kami boleh memaparkan pautan kebenaran yang sepadan dalam fail paparan. Dalam rangka kerja CakePHP, gunakan kaedah user dalam komponen Auth untuk menyemak sama ada pengguna dibenarkan. 🎜rrreee🎜Dalam kod di atas, kami mula-mula menggunakan kaedah pengguna komponen Auth untuk menyemak sama ada pengguna dibenarkan. Jika pengguna diberi kuasa, kami akan memaparkan pautan "Log Keluar" kepada tindakan logout pengawal Pengguna. Jika pengguna tidak dibenarkan, kami akan memaparkan pautan "Log Masuk" yang menunjuk kepada tindakan log masuk pengawal Pengguna. 🎜🎜Pada ketika ini, kami telah menyelesaikan langkah-langkah menggunakan rangka kerja CakePHP untuk melaksanakan kawalan kebenaran. Dengan menggunakan komponen AuthComponent dan kaedah isAuthorized, kami boleh melaksanakan fungsi kawalan kebenaran yang berkuasa dengan mudah. Saya harap contoh kod yang disediakan dalam artikel ini dapat membantu anda lebih memahami dan menggunakan fungsi kawalan kebenaran rangka kerja CakePHP. 🎜

Atas ialah kandungan terperinci Langkah untuk melaksanakan kawalan kebenaran menggunakan rangka kerja CakePHP. 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