<?php
namespace App\Http\Controllers;
use App\Models\Gender;
use App\Models\UserDetail;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Validator;
use App\User;
use Illuminate\Support\Facades\Hash;
class Authentication extends Controller
{
public function index($data = null)
{
if (Auth::check()) {
return redirect()->route("homepage");
}
if (!isset($data)) {
return view("tjejerfragor/auth/login");
} else {
return view("tjejerfragor/auth/login")->with("status", $data);
}
}
public function registerIndex($data = null)
{
if (Auth::check()) {
return redirect()->route("homepage");
}
if (!isset($data)) {
return view("tjejerfragor/auth/register");
} else {
return view("tjejerfragor/auth/register")->with("status", $data);
}
}
public function Register(Request $request)
{
$validate = Validator::make($request->all(), [
"name" => "required|max:50",
"username" => "required|min:6|max:50|alpha_dash",
'email' => 'required|string|email|max:255|unique:users',
'password' => 'required|string|min:6|confirmed',
'gender' => 'required|max:5',
]);
if ($validate->fails()) {
return response()->json([
"status" => false,
"auth" => false,
"message" => $validate->errors()->first()
]);
}
$user = User::create([
"name" => $request->input("name"),
"username" => $request->input("username"),
"email" => $request->input("email"),
"password" => bcrypt($request->input("password")),
"activated" => 0
]);
$this->guard()->login($user);
return response()->json([
"status" => true,
"auth" => true,
"message" => "youre now registered"
]);
}
protected function guard()
{
return Auth::guard();
}
public
function Login(Request $request)
{
$validate = Validator::make($request->all(), [
"email" => "required|email|string|max:255",
"password" => "required",
"remember" => "nullable"
]);
if ($validate->fails()) {
return response()->json([
"status" => false,
"auth" => false,
"message" => $validate->errors()->first()
]);
}
$auth = Auth::attempt([
"email" => $request->email,
"password" => $request->password,
"activated" => 1,
]);
if ($auth) {
return response()->json([
"status" => true,
"auth" => true,
"message" => "welcome back: " . Auth::user()->username
]);
} else {
return response()->json([
"status" => false,
"auth" => false,
"message" => "username or password is wrong.
]);
}
}
}