Perbaiki login api

This commit is contained in:
Muhammad Raihan Surya 2023-12-19 15:03:28 +07:00
parent 6e4d6f561c
commit bf163bce1e

View File

@ -8,7 +8,6 @@ use Illuminate\Http\Request;
use Tymon\JWTAuth\Facades\JWTFactory; use Tymon\JWTAuth\Facades\JWTFactory;
use Illuminate\Support\Facades\Hash; use Illuminate\Support\Facades\Hash;
use App\Models\User; use App\Models\User;
use Carbon\Carbon;
use GuzzleHttp\Client; use GuzzleHttp\Client;
use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\DB;
@ -23,7 +22,6 @@ use Laravolt\Indonesia\Models\Village;
use Pusher\Pusher; use Pusher\Pusher;
use Tymon\JWTAuth\Facades\JWTAuth; use Tymon\JWTAuth\Facades\JWTAuth;
class LoginApiController extends Controller class LoginApiController extends Controller
{ {
/** /**
@ -37,16 +35,16 @@ class LoginApiController extends Controller
* *
* @return \Illuminate\Http\JsonResponse * @return \Illuminate\Http\JsonResponse
*/ */
public function login() public function login(Request $request)
{ {
$credentials = request(['email', 'password']); $credentials = $request->only(['email', 'password']);
if (!($token = Auth::guard('api')->attempt($credentials))) { $token = Auth::guard('api')->attempt($credentials);
return response()->json(['error' => 'Unauthorized'], 401); if (!$token) {
return response()->json(['error' => 'Email atau password salah'], 401);
} }
return $this->respondWithToken($token); return $this->respondWithToken($token);
} }
/** /**
@ -125,8 +123,8 @@ class LoginApiController extends Controller
if ($request->hasFile('ktp') && $request->hasFile('wajah')) { if ($request->hasFile('ktp') && $request->hasFile('wajah')) {
$fileKtp = $request->file('ktp'); $fileKtp = $request->file('ktp');
$fileWajah = $request->file('wajah'); $fileWajah = $request->file('wajah');
$foto_ktp = 'Foto-KTP-'.$email. '.' . $fileKtp->getClientOriginalExtension(); $foto_ktp = 'Foto-KTP-' . $email . '.' . $fileKtp->getClientOriginalExtension();
$foto_wajah = 'Foto-Wajah'.$email.'.' . $fileWajah->getClientOriginalExtension(); $foto_wajah = 'Foto-Wajah' . $email . '.' . $fileWajah->getClientOriginalExtension();
$pathKtp = 'foto-ktp/' . $foto_ktp; $pathKtp = 'foto-ktp/' . $foto_ktp;
$pathWajah = 'foto-wajah/' . $foto_wajah; $pathWajah = 'foto-wajah/' . $foto_wajah;
@ -142,52 +140,52 @@ class LoginApiController extends Controller
'multipart' => [ 'multipart' => [
[ [
'name' => 'image', 'name' => 'image',
'contents' => fopen(public_path('storage/foto-ktp/'.$foto_ktp), 'r'), 'contents' => fopen(public_path('storage/foto-ktp/' . $foto_ktp), 'r'),
'filename' => $foto_ktp, 'filename' => $foto_ktp,
], ],
], ],
'verify' => false 'verify' => false,
]); ]);
$result = $response->getBody()->getContents(); $result = $response->getBody()->getContents();
$lines = json_decode($result,true); $lines = json_decode($result, true);
$namaKTP = str_replace(' ','',strtolower($nama_depan.$nama_belakang)); $namaKTP = str_replace(' ', '', strtolower($nama_depan . $nama_belakang));
$nikKTP = $nik; $nikKTP = $nik;
$persentaseNama = 0; $persentaseNama = 0;
$persentaseNik = 0; $persentaseNik = 0;
foreach($lines['result'] as $line){ foreach ($lines['result'] as $line) {
$teks = str_replace(' ','',strtolower($line)); $teks = str_replace(' ', '', strtolower($line));
$persentaseNamaSementara = 0; $persentaseNamaSementara = 0;
$persentaseNikSementara = 0; $persentaseNikSementara = 0;
similar_text($teks,$namaKTP,$persentaseNamaSementara); similar_text($teks, $namaKTP, $persentaseNamaSementara);
similar_text($teks,$nikKTP,$persentaseNikSementara); similar_text($teks, $nikKTP, $persentaseNikSementara);
if($persentaseNamaSementara > 0){ if ($persentaseNamaSementara > 0) {
if($persentaseNamaSementara > $persentaseNama){ if ($persentaseNamaSementara > $persentaseNama) {
$persentaseNama = $persentaseNamaSementara; $persentaseNama = $persentaseNamaSementara;
} }
} }
if($persentaseNikSementara > 0){ if ($persentaseNikSementara > 0) {
if($persentaseNikSementara > $persentaseNik){ if ($persentaseNikSementara > $persentaseNik) {
$persentaseNik = $persentaseNikSementara; $persentaseNik = $persentaseNikSementara;
} }
} }
} }
$persentase_kemiripan = ($persentaseNama + $persentaseNik)/2; $persentase_kemiripan = ($persentaseNama + $persentaseNik) / 2;
$status = 'Progress'; $status = 'Progress';
if($persentase_kemiripan >= 50){ if ($persentase_kemiripan >= 50) {
$status = 'Finished'; $status = 'Finished';
}else if($persentase_kemiripan <= 35){ } elseif ($persentase_kemiripan <= 35) {
return response()->json([ return response()->json([
'status' => false, 'status' => false,
'message' => 'Sistem tidak dapat mendeteksi foto KTP. Kemungkinan foto tidak jelas atau buram, silahkan upload foto KTP yang jelas. Persentase kemiripan inputan : '.$persentase_kemiripan.'%' 'message' => 'Sistem tidak dapat mendeteksi foto KTP. Kemungkinan foto tidak jelas atau buram, silahkan upload foto KTP yang jelas. Persentase kemiripan inputan : ' . $persentase_kemiripan . '%',
]); ]);
} }
@ -211,7 +209,7 @@ class LoginApiController extends Controller
'gender' => $gender, 'gender' => $gender,
'kode_kelurahan' => $kode_kelurahan, 'kode_kelurahan' => $kode_kelurahan,
'remember_token' => Str::random(10), 'remember_token' => Str::random(10),
'status' => $status 'status' => $status,
]); ]);
DB::commit(); DB::commit();
@ -229,12 +227,12 @@ class LoginApiController extends Controller
$pusher->trigger('chanel-update-notifikasi-untuk-admin', 'event-update-notifikasi-untuk-admin', $payload); $pusher->trigger('chanel-update-notifikasi-untuk-admin', 'event-update-notifikasi-untuk-admin', $payload);
if($status == 'Finished'){ if ($status == 'Finished') {
return response()->json([ return response()->json([
'status' => true, 'status' => true,
'message' => 'Akun anda sudah terdaftar dan dapat digunakan', 'message' => 'Akun anda sudah terdaftar dan dapat digunakan',
]); ]);
}else{ } else {
return response()->json([ return response()->json([
'status' => true, 'status' => true,
'message' => 'Akun anda sudah terdaftar dan butuh verifikasi hingga maksimal 1 hari kerja', 'message' => 'Akun anda sudah terdaftar dan butuh verifikasi hingga maksimal 1 hari kerja',
@ -252,7 +250,8 @@ class LoginApiController extends Controller
} }
} }
public function verificationCode(Request $request){ public function verificationCode(Request $request)
{
$email = $request->input('email'); $email = $request->input('email');
$code = $request->input('code'); $code = $request->input('code');