Rumah >pembangunan bahagian belakang >tutorial php >Cara menggunakan sesi untuk melaksanakan log masuk dan log keluar pengguna dalam rangka kerja Slim

Cara menggunakan sesi untuk melaksanakan log masuk dan log keluar pengguna dalam rangka kerja Slim

WBOY
WBOYasal
2023-07-28 23:21:111149semak imbas

Cara menggunakan sesi untuk melaksanakan log masuk dan log keluar pengguna dalam rangka kerja Slim

Pengenalan:
Sessions ialah teknologi yang biasa digunakan dalam aplikasi web Ia boleh digunakan untuk menyimpan dan mengurus data berkaitan pengguna, seperti status log masuk pengguna. dll. Sebagai rangka kerja PHP yang ringan, rangka kerja Slim menyediakan API mudah untuk mengendalikan sesi. Artikel ini akan memperkenalkan cara menggunakan sesi dalam rangka kerja Slim untuk melaksanakan fungsi log masuk dan log keluar pengguna.

  1. Pasang rangka kerja Slim
    Mula-mula, kita perlu memasang rangka kerja Slim dalam persekitaran PHP. Ia boleh dipasang melalui Composer, laksanakan arahan berikut:

    composer require slim/slim
  2. Cipta aplikasi Slim
    Buat fail PHP baharu, seperti index.php, dan kemudian perkenalkan fail autoloading rangka kerja Slim dan komponen sesi ke dalam fail:

    require 'vendor/autoload.php';
    
    use SlimSlim;
    use SlimMiddlewareSession;
    
    // 创建Slim应用
    $app = new Slim();
    
    // 启用会话中间件
    $app->add(new Session());
  3. Fungsi log masuk
    Seterusnya, kita perlu melaksanakan fungsi log masuk pengguna. Andaikan kami mempunyai laluan /login, dan pengguna boleh log masuk dengan menyerahkan nama pengguna dan kata laluan mereka melalui permintaan POST. Kami akan mengesahkan nama pengguna dan kata laluan, dan jika perlawanan berjaya, simpan ID pengguna dalam sesi, menunjukkan bahawa pengguna telah log masuk.
$app->post('/login', function () use ($app) {
    $request = $app->request;
    $username = $request->params('username');
    $password = $request->params('password');

    // 验证用户名和密码
    if ($username === 'admin' && $password === 'password') {
        // 将用户ID存储在会话中
        $app->session->set('user_id', 1);
        $app->response->setStatus(200);
        $app->response()->write('Login success');
    } else {
        $app->response->setStatus(401);
        $app->response()->write('Login failed');
    }
});
  1. Fungsi Log Keluar
    Untuk melaksanakan fungsi log keluar pengguna, kami boleh mencipta laluan /logout Apabila pengguna mengakses laluan ini, kami akan mengosongkan ID pengguna dalam sesi.
$app->get('/logout', function () use ($app) {
    // 清除会话中的用户ID
    $app->session->delete('user_id');
    $app->response->setStatus(200);
    $app->response()->write('Logout success');
});
  1. Authentication middleware
    Untuk melaksanakan fungsi pengesahan pengguna, kami boleh mencipta middleware tersuai untuk menyemak sama ada ID pengguna wujud dalam sesi Jika ia tidak wujud, ini bermakna pengguna tidak log masuk dan perlu log masuk.
// 自定义鉴权中间件
$authMiddleware = function ($route) use ($app) {
    // 检查会话中是否存在用户ID
    if (!$app->session->get('user_id')) {
        $app->response->setStatus(401);
        $app->response->write('Unauthorized');
        return;
    }

    // 用户已登录,继续执行下一个中间件或路由处理程序
    $route->run();
};

// 在需要验证用户登录的路由中使用中间件
$app->get('/protected', function () use ($app) {
    $app->response->write('Protected route');
})->add($authMiddleware);
  1. Mulakan aplikasi
    Akhir sekali, kita perlu memulakan aplikasi Slim di hujung fail:

    $app->run();

Selepas menjalankan aplikasi, anda boleh log masuk dengan mengakses /log masuk, log keluar dengan mengakses /log keluar , dan / dilindungi untuk menguji laluan yang dilindungi.

Ringkasan:
Melalui API ringkas yang disediakan oleh rangka kerja Slim, kami boleh menggunakan sesi dengan mudah untuk melaksanakan fungsi log masuk dan log keluar pengguna. Dengan cara ini, kami boleh mengurus data berkaitan pengguna dengan lebih baik dan meningkatkan pengalaman pengguna serta keselamatan aplikasi web. Saya harap artikel ini akan membantu anda tentang cara menggunakan sesi untuk melaksanakan log masuk dan log keluar dalam rangka kerja Slim.

Atas ialah kandungan terperinci Cara menggunakan sesi untuk melaksanakan log masuk dan log keluar pengguna dalam rangka kerja Slim. 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