Skip to content

Instantly share code, notes, and snippets.

@aldhinya
Created April 12, 2022 12:40
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save aldhinya/3c9639a5f38ce54e5bf9adb8ee2eff76 to your computer and use it in GitHub Desktop.
Save aldhinya/3c9639a5f38ce54e5bf9adb8ee2eff76 to your computer and use it in GitHub Desktop.
// File auth, ada di config\auth.php
<?php
return [
'defaults' => [
'guard' => 'web',
'passwords' => 'users',
],
'guards' => [
'member' => [
'driver' => 'session',
'provider' => 'member',
],
'web' => [
'driver' => 'session',
'provider' => 'users',
],
],
'providers' => [
'member' => [
'driver' => 'eloquent',
'model' => App\Models\Member::class,
],
'users' => [
'driver' => 'database',
'table' => 'users',
],
],
'passwords' => [
'users' => [
'provider' => 'users',
'table' => 'password_resets',
'expire' => 60,
'throttle' => 60,
],
],
'password_timeout' => 10800,
];
// Controller
<?php
namespace App\Http\Controllers;
use App\Http\Controllers\Controller;
use App\Models\Buku;
use App\Models\Member;
use Illuminate\Http\Request;
use Auth;
use Illuminate\Support\Facades\Hash;
use Illuminate\Support\Facades\Session;
class AuthController extends Controller
{
public function login()
{
if (!Auth::guard('member')->check()) {
return view('member.login');
}
return redirect()->route('home');
}
public function prosesLogin(Request $request)
{
$this->validate($request, [
'email' => 'required',
'password' => 'required'
]);
if ($request->email == null || $request->password == null) {
return redirect()->back()->with(['jenis' => 'danger', 'pesan' => 'Email dan Password salah'])
->withInput();
}
if (Auth::guard('member')->attempt(['email_member' => $request->email, 'password' => $request->password])) {
return redirect(route('home'))->with(['jenis' => 'success', 'pesan' => 'Berhasil Login, Selamat Datang Kembali.']);
} else {
return redirect()->back()->with(['jenis' => 'danger', 'pesan' => 'Email atau Password salah'])
->withInput();
}
}
public function register()
{
if (!Auth::guard('member')->check()) {
return view('member.register');
}
return redirect()->route('home');
}
public function prosesRegister(Request $request)
{
$request->validate([
'nama' => 'required|max:100',
'alamat' => 'required|max:255',
'jenis_kelamin' => 'required|in:1,2',
'nohp' => 'required|numeric',
'email' => 'unique:member,email_member|required|max:100|email',
'password' => 'required|min:6|confirmed',
]);
Member::create([
'nama_member' => ucwords($request->nama),
'alamat' => $request->alamat,
'gender' => $request->jenis_kelamin,
'phone_member' => $request->nohp,
'email_member' => $request->email,
'password' => Hash::make($request->password),
]);
return back()->with([
'jenis' => 'success',
'title' => 'Berhasil',
'pesan' => 'Kamu Berhasil Melakukan Pendaftaran Akun. Silahkan Melakukan Login.'
]);
}
public function logout()
{
foreach (array_keys(config('auth.guards')) as $guard) {
Auth::guard('member')->logout();
}
return redirect()->route('memberLogin');
}
}
// Middleware, buat file baru di : App\Http\Middleware
<?php
namespace App\Http\Middleware;
use Closure;
use Illuminate\Support\Facades\Auth;
class CekLoginMember
{
public function handle($request, Closure $next)
{
if (!Auth::guard('member')->check()) {
return redirect()->route('memberLogin')->with(['jenis' => 'danger', 'pesan' => 'Adna belum login, silahkan login terlebih dahulu.']);
}
return $next($request);
}
}
// Kernel, file ada di : App\Http
protected $routeMiddleware = [
// kodingan lainnya
'auth.member' => Middleware\CekLoginMember::class,
];
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment