codeigniter 如何将令牌从一个控制器传递到另一个控制器?

fslejnso  于 2023-02-17  发布在  其他
关注(0)|答案(1)|浏览(138)

我创建了一个控制器“Login”以成功创建下面的令牌,但我不知道如何为另一个控制器捕获该令牌

<?php

namespace App\Controllers;

use CodeIgniter\RESTful\ResourceController;
use CodeIgniter\API\ResponseTrait;
use App\Models\UserModel;
use Firebase\JWT\JWT;

class Login extends ResourceController
{
    /**
     * Return an array of resource objects, themselves in array format
     *
     * @return mixed
     */
    use ResponseTrait;
    public function index()
    {
        helper(['form']);
        $rules = [
            'email' => 'required|valid_email',
            'password' => 'required|min_length[6]'
        ];
        if (!$this->Validate($rules)) return $this->fail($this->validator->getErrors());
        $model = new UserModel();
        $user = $model->where("email", $this->request->getVar('email'))->first();
        if (!$user) return $this->failNotFound('Email Tidak Ditemukan');

        $verify = password_verify($this->request->getVar('password'), $user['password']);
        if (!$verify) return $this->fail('wrong Password');

        $key = getenv('TOKEN_SECRET');
        $payload = [
            // issue at : kapan token dibuat
            'iat' => 1356999524,
            // non before : kapan expired
            'nbf' => 1357000000,
            'uid' => $user['id'],
            'email' => $user['email'],
        ];
        $token = JWT::encode($payload, $key, 'HS256');
        return $this->respond($token);

        // return redirect()->to(base_url('/me', $token));
    }
}

我希望知道如何将令牌从一个控制器传递到另一个控制器

hfsqlsce

hfsqlsce1#

令牌不能被传递给不同的控制器,相反,客户端(我假设您在API中工作)应该将令牌作为参数或头部发送。

相关问题