register, login and logout function
This commit is contained in:
@@ -0,0 +1,92 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use App\Models\User;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Http\Response;
|
||||
use Illuminate\Support\Facades\Hash;
|
||||
|
||||
class AuthController extends Controller
|
||||
{
|
||||
public function register(Request $request) {
|
||||
$fields = $request->validate([
|
||||
'name' => 'required|string',
|
||||
'username' => 'required|string',
|
||||
'kodcaw' => 'required|string',
|
||||
'bank_acc_pembeli' => 'required|string',
|
||||
'bank_acc_no_pembeli' => 'required|string',
|
||||
'alamat_rumah' => 'required|string',
|
||||
'notelpejabat' => 'required|string',
|
||||
'notelbimbit' => 'required|string',
|
||||
'note' => 'string',
|
||||
'status' => 'required|string',
|
||||
't_daftar' => 'required|date',
|
||||
'online' => 'integer',
|
||||
'register_agree' => 'required|integer',
|
||||
'email' => 'required|string|unique:users,email',
|
||||
'password' => 'required|string|confirmed'
|
||||
]);
|
||||
|
||||
$user = User::create([
|
||||
'name' => $fields['name'],
|
||||
'username' => $fields['username'],
|
||||
'kodcaw' => $fields['kodcaw'],
|
||||
'bank_acc_pembeli' => $fields['bank_acc_pembeli'],
|
||||
'bank_acc_no_pembeli' => $fields['bank_acc_no_pembeli'],
|
||||
'alamat_rumah' => $fields['alamat_rumah'],
|
||||
'notelpejabat' => $fields['notelpejabat'],
|
||||
'notelbimbit' => $fields['notelbimbit'],
|
||||
'status' => $fields['status'],
|
||||
't_daftar' => $fields['t_daftar'],
|
||||
'online' => $fields['online'],
|
||||
'register_agree' => $fields['register_agree'],
|
||||
'email' => $fields['email'],
|
||||
'email' => $fields['email'],
|
||||
'password' => bcrypt($fields['password'])
|
||||
]);
|
||||
|
||||
$token = $user->createToken('myapptoken')->plainTextToken;
|
||||
$response = [
|
||||
'user' => $user,
|
||||
'token' => $token
|
||||
];
|
||||
|
||||
return response($response, 201);
|
||||
}
|
||||
|
||||
public function login(Request $request) {
|
||||
$fields = $request->validate([
|
||||
'username' => 'required|string',
|
||||
'password' => 'required|string'
|
||||
]);
|
||||
|
||||
//Check Email
|
||||
$user = User::where('username', $fields['username'])->first();
|
||||
|
||||
//Check Password
|
||||
if(!$user || !Hash::check($fields['password'], $user->password)){
|
||||
return response([
|
||||
'message' => 'Bad Creds'
|
||||
], 401);
|
||||
|
||||
}
|
||||
|
||||
$token = $user->createToken('myapptoken')->plainTextToken;
|
||||
$response = [
|
||||
'user' => $user,
|
||||
'token' => $token
|
||||
];
|
||||
|
||||
return response($response, 201);
|
||||
}
|
||||
|
||||
public function logout(Request $request){
|
||||
auth()->user()->tokens()->delete();
|
||||
|
||||
return [
|
||||
'message' => 'Logged Out'
|
||||
];
|
||||
|
||||
}
|
||||
}
|
||||
+1
-1
@@ -40,7 +40,7 @@ class Kernel extends HttpKernel
|
||||
],
|
||||
|
||||
'api' => [
|
||||
// \Laravel\Sanctum\Http\Middleware\EnsureFrontendRequestsAreStateful::class,
|
||||
\Laravel\Sanctum\Http\Middleware\EnsureFrontendRequestsAreStateful::class,
|
||||
'throttle:api',
|
||||
\Illuminate\Routing\Middleware\SubstituteBindings::class,
|
||||
],
|
||||
|
||||
@@ -20,6 +20,7 @@ class User extends Authenticatable
|
||||
*/
|
||||
protected $fillable = [
|
||||
'name',
|
||||
'username',
|
||||
'email',
|
||||
'password',
|
||||
'kodcaw',
|
||||
|
||||
+1
-1
@@ -10,7 +10,7 @@
|
||||
"fruitcake/laravel-cors": "^2.0",
|
||||
"guzzlehttp/guzzle": "^7.0.1",
|
||||
"laravel/framework": "^8.65",
|
||||
"laravel/sanctum": "^2.11",
|
||||
"laravel/sanctum": "^2.13",
|
||||
"laravel/tinker": "^2.5",
|
||||
"spatie/laravel-permission": "^5.3"
|
||||
},
|
||||
|
||||
Generated
+6
-6
@@ -4,7 +4,7 @@
|
||||
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
|
||||
"This file is @generated automatically"
|
||||
],
|
||||
"content-hash": "a0c6a386f78f6d432be79a4da6d101e1",
|
||||
"content-hash": "5a99e809aac124ccfab83552fde32309",
|
||||
"packages": [
|
||||
{
|
||||
"name": "asm89/stack-cors",
|
||||
@@ -1265,16 +1265,16 @@
|
||||
},
|
||||
{
|
||||
"name": "laravel/sanctum",
|
||||
"version": "v2.12.1",
|
||||
"version": "v2.13.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/laravel/sanctum.git",
|
||||
"reference": "e610647b04583ace6b30c8eb74cee0a866040420"
|
||||
"reference": "b4c07d0014b78430a3c827064217f811f0708eaa"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/laravel/sanctum/zipball/e610647b04583ace6b30c8eb74cee0a866040420",
|
||||
"reference": "e610647b04583ace6b30c8eb74cee0a866040420",
|
||||
"url": "https://api.github.com/repos/laravel/sanctum/zipball/b4c07d0014b78430a3c827064217f811f0708eaa",
|
||||
"reference": "b4c07d0014b78430a3c827064217f811f0708eaa",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -1325,7 +1325,7 @@
|
||||
"issues": "https://github.com/laravel/sanctum/issues",
|
||||
"source": "https://github.com/laravel/sanctum"
|
||||
},
|
||||
"time": "2021-10-26T18:23:26+00:00"
|
||||
"time": "2021-12-14T17:49:47+00:00"
|
||||
},
|
||||
{
|
||||
"name": "laravel/serializable-closure",
|
||||
|
||||
+35
-29
@@ -2,6 +2,7 @@
|
||||
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\Route;
|
||||
use App\Http\Controllers\AuthController;
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
@@ -14,41 +15,46 @@ use Illuminate\Support\Facades\Route;
|
||||
|
|
||||
*/
|
||||
|
||||
Route::middleware('auth:sanctum')->get('/user', function (Request $request) {
|
||||
// dd();
|
||||
return response()->json($request->user());
|
||||
//Public routes
|
||||
Route::post('/register', [AuthController::class, 'register']);
|
||||
Route::post('/login', [AuthController::class, 'login']);
|
||||
|
||||
//Protected routes
|
||||
Route::group(['middleware' => ['auth:sanctum']], function () {
|
||||
|
||||
Route::post('/logout', [AuthController::class, 'logout']);
|
||||
});
|
||||
|
||||
Route::post('/login', function (Request $request) {
|
||||
$request->validate([
|
||||
'username' => 'required|string',
|
||||
'password' => 'required|string',
|
||||
]);
|
||||
// Route::post('/login', function (Request $request) {
|
||||
// $request->validate([
|
||||
// 'username' => 'required|string',
|
||||
// 'password' => 'required|string',
|
||||
// ]);
|
||||
|
||||
$credentials = $request->only('username', 'password');
|
||||
// $credentials = $request->only('username', 'password');
|
||||
|
||||
|
||||
if (Auth::guard('api')->attempt($credentials,true)) {
|
||||
$auth_user = Auth::guard('api')->user();
|
||||
// if (Auth::guard('api')->attempt($credentials,true)) {
|
||||
// $auth_user = Auth::guard('api')->user();
|
||||
|
||||
// dd($auth_user);
|
||||
$user_login['name'] = $auth_user['name'];
|
||||
$user_login['username'] = $auth_user['username'];
|
||||
$user_login['password'] = $auth_user['password'];
|
||||
$user_login['icno'] = $auth_user['nokp'];
|
||||
$user_login['apitoken'] = $auth_user['remember_token'];
|
||||
return response()->json([
|
||||
'success' => true,
|
||||
'user' => $user_login
|
||||
]);
|
||||
} else {
|
||||
//if authentication is unsuccessfull, notice how I return json parameters
|
||||
return response()->json([
|
||||
'success' => false,
|
||||
'message' => 'Invalid Email or Password',
|
||||
], 401);
|
||||
}
|
||||
});
|
||||
// // dd($auth_user);
|
||||
// $user_login['name'] = $auth_user['name'];
|
||||
// $user_login['username'] = $auth_user['username'];
|
||||
// $user_login['password'] = $auth_user['password'];
|
||||
// $user_login['icno'] = $auth_user['nokp'];
|
||||
// $user_login['apitoken'] = $auth_user['remember_token'];
|
||||
// return response()->json([
|
||||
// 'success' => true,
|
||||
// 'user' => $user_login
|
||||
// ]);
|
||||
// } else {
|
||||
// //if authentication is unsuccessfull, notice how I return json parameters
|
||||
// return response()->json([
|
||||
// 'success' => false,
|
||||
// 'message' => 'Invalid Email or Password',
|
||||
// ], 401);
|
||||
// }
|
||||
// });
|
||||
|
||||
Route::get('/item','ApiController@biditem');
|
||||
|
||||
|
||||
Reference in New Issue
Block a user