auth simpel

 avatar
unknown
php
a month ago
5.2 kB
4
Indexable
<?php

namespace App\Http\Controllers\BankSenggarah;

use App\Http\Requests\BankSenggarah\LoginBankSenggarahRequest;
use App\Http\Requests\BankSenggarah\RegisterBankSenggarahRequest;
use App\Models\BankSenggarah\UserBankSenggarah;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Hash;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;

class AuthBankSenggarahController extends Controller
{
    public function register(RegisterBankSenggarahRequest $request)
    {
        $user = UserBankSenggarah::create([
            'name' => $request->name,
            'email' => $request->email,
            'password' => Hash::make($request->password),
            'address' => $request->address,
            'occupation' => $request->occupation,
            'gaji_per_bulan' => $request->gaji_per_bulan,
        ]);

        // Auto-login setelah registrasi
        Auth::login($user);

        return response()->json([
            'message' => 'Registrasi berhasil',
            'user' => $user,
        ], 201);
    }

    public function login(LoginBankSenggarahRequest $request)
    {
        $user = UserBankSenggarah::where('email', $request->email)->first();

        if ($user && Hash::check($request->password, $user->password)) {
            Auth::login($user);  // Gunakan login manual jika Auth::attempt gagal

            return response()->json([
                'message' => 'Login berhasil',
                'user' => $user,
            ]);
        }

        return response()->json([
            'message' => 'Email atau password salah',
        ], 401);
    }


    public function logout(Request $request)
    {
        $userId = $request->input('id');

        $user = UserBankSenggarah::find($userId);

        if (!$user) {
            return response()->json([
                'message' => 'User tidak ditemukan'
            ], 404);
        }

        // Auth::logout();

        return response()->json([
            'message' => 'Logout berhasil',
        ]);
    }

    public function getUserDetail(Request $request)
    {
        $user = UserBankSenggarah::find($request->id);

        if (!$user) {
            return response()->json(['message' => 'User not found'], 404);
        }

        return response()->json([
            'message' => 'User detail retrieved successfully',
            'user' => [
                'id' => $user->id,
                'name' => $user->name,
                'email' => $user->email,
                'address' => $user->address,
                'occupation' => $user->occupation,
                'gaji_per_bulan' => (int) $user->gaji_per_bulan,
            ],
        ]);
    }



}


models = 


<?php

namespace App\Models\BankSenggarah;

use Illuminate\Foundation\Auth\User as Authenticatable;

class UserBankSenggarah extends Authenticatable
{
    protected $table = 'users_bank_senggarah'; // Tambahkan ini

    protected $fillable = [
        'name',
        'email',
        'password',
        'address',
        'occupation',
        'gaji_per_bulan',
    ];

    protected $hidden = [
        'password',
    ];

    public function loans()
    {
        return $this->hasMany(LoanBankSenggarah::class);
    }
}


routes = 


// --------------------------------
// Sulton - Project Simulasi Pinjaman Bank Desa Senggarah
// ------------------------------------


Route::post('/register-bank-senggarah', [AuthBankSenggarahController::class, 'register']);
Route::post('/login-bank-senggarah', [AuthBankSenggarahController::class, 'login']);
Route::post('/logout-bank-senggarah', [AuthBankSenggarahController::class, 'logout']);
Route::post('/apply-loan-bank-senggarah', [LoanBankSenggarahController::class, 'applyLoan']);
Route::get('/loan-history-bank-senggarah', [LoanBankSenggarahController::class, 'getLoanHistory']);
Route::post('/edit-profile-bank-senggarah', [ProfileBankSenggarahController::class, 'editProfile']);
Route::post('/user-detail-bank-senggarah', [AuthBankSenggarahController::class, 'getUserDetail']);
Route::post('/get-loan-limit', [LoanBankSenggarahController::class, 'getLoanLimit']);
Route::post('/calculate-loan-payment', [LoanBankSenggarahController::class, 'calculateLoanPayment']);



migration = 

<?php

use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;

return new class extends Migration {
    public function up(): void
    {
        Schema::create('users_bank_senggarah', function (Blueprint $table) {
            $table->id();
            $table->string('name');
            $table->string('email')->unique();
            $table->string('password');
            $table->string('address')->nullable();
            $table->string('occupation')->nullable();
            $table->decimal('gaji_per_bulan', 12, 2)->nullable();
            $table->timestamps();
        });
    }

    public function down(): void
    {
        Schema::dropIfExists('users_bank_senggarah');
    }
};

Editor is loading...
Leave a Comment