<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use App\Models\User; use Illuminate\Support\Facades\Log; use Illuminate\Support\Facades\Hash; use Illuminate\Auth\Events\Registered; use Illuminate\Support\Facades\Password; class UserController extends Controller { public function create(Request $request) { $validated = $request->validate([ 'name' => 'required', 'email' => 'required|email|unique:users', 'password' => 'required' /* 'password' => 'required|confirmed|min:8|regex:/[a-z]/|regex:/[A-Z]/|regex:/[0-9]/' */ ]); $user = new User; $user->name = $request->name; $user->email = $request->email; $user->role = "client"; $user->password = Hash::make($request->password); $user->save(); event(new Registered($user)); return response()->json([ "status" => "success" ]); } public function forgotPassword(Request $request) { $request->validate(['email' => 'required|email']); $status = Password::sendResetLink( $request->only('email') ); if ($status === Password::RESET_LINK_SENT) { return response()->json([ "status" => "success" ]) } else { return response()->json($errors->all()) } } public function resetPassword(Request $request) { $request->validate([ 'token' => 'required', 'email' => 'required|email', 'password' => 'required|min:8|confirmed', ]); $status = Password::reset( $request->only('email', 'password', 'password_confirmation', 'token'), function ($user, $password) use ($request) { $user->forceFill([ 'password' => Hash::make($password) ])->setRememberToken(Str::random(60)) }); if ($status == Password::PASSWORD_RESET) { return response()->json([ "status" => "success" ]); } else { return response()->json([__($status)]); } } }