Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- namespace App\Controllers;
- use CodeIgniter\RESTful\ResourceController;
- use CodeIgniter\API\ResponseTrait;
- use App\Models\UserModel;
- use Firebase\JWT\JWT;
- use Firebase\JWT\Key;
- 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 Not Found');
- $verify = password_verify($this->request->getVar('password'), $user['password']);
- if(!$verify) return $this->fail('Wrong Password');
- $key = getenv('TOKEN_SECRET');
- $payload = array(
- "iat" => 1356999524,
- "nbf" => 1357000000,
- "uid" => $user['id_users'],
- "email" => $user['email']
- );
- $token = JWT::encode($payload, $key, 'HS256');
- // $token_decoded = JWT::decode($token, new Key($key, 'HS256'));
- // /**
- // * contoh error
- // */
- // $data_error = [
- // 'success' => false,
- // 'error' => 'email tidak bisa digunakan.'
- // ];
- // return $this->response->setStatusCode(400)->setJSON($data_error);
- /**
- * contoh sukses
- */
- $data = [
- "status"=> 200,
- "messages"=> "Sukses login",
- "data" => [
- "token" => $token,
- // "token_decoded" => $token_decoded,
- ]
- ];
- return $this->response->setJSON($data);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement