简体   繁体   English

Codeigniter 4:登录多用户

[英]Codeigniter 4: Login Multi User

I have a problem about login multi user in my sistem.我在我的系统中登录多用户时遇到问题。 The sistem login is not worked as a flowchart below (language is Indonesia): Flowchart Login Multi User系统登录不作为下面的流程图(语言为印度尼西亚):流程图登录多用户

And the controller code is this: controller 代码是这样的:

<?php
namespace App\Controllers;

use CodeIgniter\Controller;

use App\Controllers\BaseController;
use App\Models\LoginModel;

/**
 * 
 */
class Login extends BaseController
{
    
    public function index()
    {
        helper(['form']);
        echo view('formlogin');
    }

    public function auth()
    {
        $session = session();
        $model = new LoginModel();
        $username = $this->request->getVar('username');
        $password = $this->request->getVar('password');

        $data = $model->where('username', $username)->get()->getRowArray();
        //$data = $model->get()->getResultArray();

        if ($data) {
            //$pass = $data['password'];
            $pass = password_hash($data['password'], PASSWORD_DEFAULT);
            $verify = password_verify($password, $pass);
            

            if ($verify) {
                $session_data = [
                    'id_login' => $data['id_login'],
                    'username' => $data['username'],
                    'password' => $data['password'],
                    'level'    => $data['level'],
                    'logged_in' => TRUE
                ];
                $session->set($session_data);
                
                if ($level = 'adminsuper') {
                    return redirect()->to(base_url('/adminsuper'));
                }elseif ($level = 'admin') {
                    return redirect()->to(base_url('/admin'));
                }
                //return redirect()->to(base_url('/adminsuper'));
            }else{
                $session->setFlashdata('msg', '<div class="alert alert-danger text-center">Username dan Password Salah</div>');

                return redirect()->to(base_url('/login'));
            }
        }else{
            $session->setFlashdata('msg','<div class="alert alert-danger text-center">Pengguna Tidak Terdaftar</div>');
            return redirect()->to(base_url('/login'));
        }
    }

    public function logout()
    {
        $session = session();
        $session->destroy();
        return redirect()->to(base_url('/login'));
    }
}
?>

What should I do, in order to be able to login multi user based on user level?为了能够基于用户级别登录多用户,我应该怎么做? The level of admin are adminsuper and admin .管理员级别为adminsuperadmin

this way log in log out is outdatae use jwt(jwt.io) its modern way login and secure这种方式登录注销是outdatae使用jwt(jwt.io)它的现代方式登录和安全

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM