Bagosep

Login

Jun 15th, 2021
908
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. <?php
  2.  
  3. namespace App\Http\Controllers\api;
  4.  
  5. use App\Aslab;
  6. use App\Dosen;
  7. use App\User;
  8. use Illuminate\Http\Request;
  9. use App\Http\Controllers\Controller;
  10. use Illuminate\Support\Facades\Config;
  11. use Illuminate\Support\Facades\Hash;
  12. use Illuminate\Support\Facades\Validator;
  13. use Tymon\JWTAuth\Facades\JWTAuth;
  14.  
  15. class LoginController extends Controller
  16. {
  17.     public function login(Request $request) {
  18.         // get email and password from request
  19.         $validator = Validator::make($request->all(), [
  20.             'username' => 'required|string|max:255',
  21.             'password' => 'required|string',
  22.             'role' => 'required|string',
  23.         ]);
  24.  
  25.         if ($validator->fails()) {
  26.             return response()->json([
  27.                 "status" => "gagal",
  28.                 "pesan" => "Gagal Login",
  29.                 "data" => $validator->errors()
  30.             ]);
  31.         }
  32.  
  33.         if($request->role == "aslab"){
  34.             $user = Aslab::where('username', $request->username)->first();
  35.             if ($user) {
  36.                 if (Hash::check($request->password,$user->password)) {
  37.                     Config::set('jwt.user', 'App\Aslab');
  38.                     Config::set('auth.providers.users.model', \App\Aslab::class);
  39.  
  40.                     return response()->json([
  41.                         "status" => "sukses",
  42.                         "pesan" => "Berhasil Login",
  43.                         "data" => [
  44.                             "token" => JWTAuth::fromUser($user),
  45.                             "user" => [
  46.                                 "nama" => $user->nama,
  47.                                 "username" => $user->username
  48.                             ]
  49.                         ]
  50.                     ]);
  51.                 }else{
  52.                     return response()->json([
  53.                         "status" => "gagal",
  54.                         "pesan" => "Gagal Login username atau password salah",
  55.                         "data" => []
  56.                     ]);
  57.                 }
  58.             } else {
  59.                 return response()->json([
  60.                     "status" => "gagal",
  61.                     "pesan" => "Gagal Login username tidak terdaftar",
  62.                     "data" => []
  63.                 ]);            }
  64.                
  65.         }else if($request->role == "dosen"){
  66.             $user = User::where('user.username', $request->username)->where('user.jenis_user_id', 3)->first();
  67.             if ($user) {
  68.                 if (Hash::check($request->password,$user->password)) {
  69.                     $dosen = Dosen::where('nip', $user->username)->first();
  70.                     Config::set('jwt.user', 'App\User');
  71.                     Config::set('auth.providers.users.model', \App\User::class);
  72.                     return response()->json([
  73.                         "status" => "sukses",
  74.                         "pesan" => "Berhasil Login",
  75.                         "data" => [
  76.                             "token" => JWTAuth::fromUser($user),
  77.                             "user" => [
  78.                                 "nama" => $dosen->nama,
  79.                                 "username" => $dosen->nip
  80.                             ]
  81.                         ]
  82.                     ]);
  83.                 }else{
  84.                     return response()->json([
  85.                         "status" => "gagal",
  86.                         "pesan" => "Gagal Login username atau password salah",
  87.                         "data" => []
  88.                     ]);
  89.                 }
  90.             } else {
  91.                 return response()->json([
  92.                     "status" => "gagal",
  93.                     "pesan" => "Gagal Login username tidak terdaftar",
  94.                     "data" => []
  95.                 ]);            }
  96.         }else{
  97.             return response()->json([
  98.                 "status" => "gagal",
  99.                 "pesan" => "Gagal Login username tidak terdaftar",
  100.                 "data" => []
  101.             ]);
  102.         }
  103.     }
  104.  
  105.     public function logout(){
  106.         auth()->logout();
  107.         return response()->json([
  108.             "status" => "sukses",
  109.             "pesan" => "Berhasil Logout",
  110.             "data" => []
  111.         ]);
  112.     }
  113.  
  114.  
  115. }
  116.  
RAW Paste Data