Advertisement
Raditio_123

Login.php

Apr 11th, 2022
224
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 1.82 KB | None | 0 0
  1. <?php
  2.  
  3.  namespace App\Controllers;
  4.  
  5.  use CodeIgniter\RESTful\ResourceController;
  6.  use CodeIgniter\API\ResponseTrait;
  7.  use App\Models\UserModel;
  8.  use Firebase\JWT\JWT;
  9.  
  10.  class Login extends ResourceController
  11.  {
  12.      /**
  13.       * Return an array of resource objects, themselves in array format
  14.       *
  15.       * @return mixed
  16.       */
  17.      use ResponseTrait;
  18.      public function index()
  19.      {
  20.          helper(['form']);
  21.          $rules = [
  22.              'email' => 'required|valid_email',
  23.              'password' => 'required|min_length[6]'
  24.          ];
  25.          if(!$this->validate($rules)) return $this->fail($this->validator->getErrors());
  26.          $model = new UserModel();
  27.          $user = $model->where("email", $this->request->getVar('email'))->first();
  28.          if(!$user) return $this->failNotFound('Email Not Found');
  29.  
  30.          $verify = password_verify($this->request->getVar('password'), $user['password']);
  31.          if(!$verify) return $this->fail('Wrong Password');
  32.  
  33.          $key = getenv('TOKEN_SECRET');
  34.          $payload = array(
  35.              "iat" => 1356999524,
  36.              "nbf" => 1357000000,
  37.              "uid" => $user['id'],
  38.              "email" => $user['email']
  39.          );
  40.  
  41.          $token = JWT::encode($payload, $key);
  42.  
  43.          return $this->respond($token);
  44.          $id = $model->getInsertID();
  45.  
  46.  
  47.          /**
  48.           * contoh error
  49.           */
  50.          $data_error = [
  51.              'success' => false,
  52.              'error' => 'email tidak bisa digunakan.'
  53.          ];
  54.          return $this->response->setStatusCode(400)->setJSON($data_error);
  55.  
  56.          /**
  57.           * contoh sukses
  58.           */
  59.          $data = [
  60.              'success' => true,
  61.              'id' => 123,
  62.          ];
  63.          return $this->response->setJSON($data_sukses);
  64.  
  65.      }
  66.  }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement