Skip to content

Instantly share code, notes, and snippets.

@kenneth-youngLA
Last active March 22, 2021 13:05
Show Gist options
  • Save kenneth-youngLA/b9d4bba86a1b767dfd3a063043ffac0c to your computer and use it in GitHub Desktop.
Save kenneth-youngLA/b9d4bba86a1b767dfd3a063043ffac0c to your computer and use it in GitHub Desktop.
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Validator;
use App\Models\User;
class AuthController extends Controller
{
//
protected function validator(array $data){
return Validator::make($data, [
'email' => 'required|string|email|max:255',
'password' => 'required|string|max:128|pwned:3',
]);
}
public function login(Request $request){
$validation = $this->validator($request->all());
if ($validation->fails()){
return response(['errors' => $validation->errors()->all()]);
}
$loginData = $request->validate([
'email' => 'email|required',
'password' => 'required'
]);
if (!auth()->attempt($loginData)) {
return response(['message' => 'Invalid Credentials']);
}
$accessToken = auth()->user()->createToken('authToken')->accessToken;
return response(['user' => auth()->user(), 'accessToken' => $accessToken]);
}
public function register(Request $request){
$currentUser = $request->user();
if ($currentUser->role == "admin"){
$validatedData = $request->validate([
'name'=>'required|max:80',
'email'=>'email|required|unique:users',
'password'=>'required|confirmed|min:12|max:128|pwned',
'role' => 'required|string'
]);
$user = User::create($validatedData);
return response(['user'=> $user]);
} else {
return response(['message' => 'You must be an admin to perform this action.']);
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment