forgot & reset password

This commit is contained in:
faiqahzaman
2022-02-15 09:40:30 +08:00
parent 571dcd1607
commit 8d1a32f2bd
18 changed files with 625 additions and 146 deletions
@@ -2,13 +2,13 @@
namespace App\Http\Controllers\AuthMobile;
use App\Http\Controllers\Controller;
use Auth;
use Carbon\Carbon;
use App\Models\User;
use App\Models\File;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Hash;
use Carbon\Carbon;
use Auth;
use Illuminate\Support\Facades\Validator;
class AuthController extends Controller
@@ -79,7 +79,7 @@ class AuthController extends Controller
return response($response, 201);
}
public function login(Request $request) {
public function loginUser(Request $request) {
$fields = $request->validate([
'username' => 'required|string',
'password' => 'required|string'
@@ -108,9 +108,11 @@ class AuthController extends Controller
}
//Check Password
if(!$user || !Hash::check($fields['password'], $user->password)){
return response([
'message' => 'Bad Creds'
], 401);
return $this->jsonResponse(null, trans('auth.failed'), 401);
// return response([
// 'message' => 'Bad Creds'
// ], 401);
}
@@ -123,7 +125,7 @@ class AuthController extends Controller
return response($response, 201);
}
public function logout(Request $request){
public function logoutUser(Request $request){
auth()->user()->tokens()->delete();
return [
@@ -0,0 +1,32 @@
<?php
namespace App\Http\Controllers\Auth;
use App\Http\Controllers\Controller;
use Illuminate\Foundation\Auth\ResetsPasswords;
class ResetPasswordController extends Controller
{
/*
|--------------------------------------------------------------------------
| Password Reset Controller
|--------------------------------------------------------------------------
|
| This controller is responsible for handling password reset emails and
| includes a trait which assists in sending these notifications from
| your application to your users. Feel free to explore this trait.
|
*/
use SendsPasswordResetEmails;
/**
* Create a new controller instance.
*
* @return void
*/
public function __construct()
{
$this->middleware('guest');
}
}
@@ -1,47 +0,0 @@
<?php
namespace App\Http\Controllers\AuthMobile;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Hash;
use Illuminate\Support\Facades\Password;
use Illuminate\Auth\Events\PasswordReset;
use Illuminate\Validation\Rules\Password as RulesPassword;
class NewPasswordController extends Controller
{
public function forgotPassword(Request $request){
$request->validation([
'email' => 'required|email'
]);
$status = User::sendResetLink(
$request->onlu('email')
);
if ($status == User::RESET_LINK_SENT){
return [
'status' => __($status)
];
}
throw ValidationException::withMessage([
'email' => [trans($status)],
]);
}
public function reset(Request $request){
$request->validation([
'token' => 'required',
'email' => 'required|email',
'password' => ['required', 'confirmed', RulesPassword::defaults()],
]);
// $status = Password::reset(
// $request->only('email', 'password_confirmation', 'token')
// )
}
}
@@ -0,0 +1,11 @@
<?php
namespace App\Http\Controllers\AuthMobile;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
class ResetPasswordController extends Controller
{
//
}
@@ -0,0 +1,41 @@
<?php
namespace App\Http\Controllers\Auth;
use App\Http\Controllers\Controller;
use Illuminate\Foundation\Auth\VerifiesEmails;
class VerificationController extends Controller
{
/*
|--------------------------------------------------------------------------
| Email Verification Controller
|--------------------------------------------------------------------------
|
| This controller is responsible for handling email verification for any
| user that recently registered with the application. Emails may also
| be re-sent if the user didn't receive the original email message.
|
*/
use VerifiesEmails;
/**
* Where to redirect users after verification.
*
* @var string
*/
protected $redirectTo = '/';
/**
* Create a new controller instance.
*
* @return void
*/
public function __construct()
{
$this->middleware('auth');
$this->middleware('signed')->only('verify');
$this->middleware('throttle:6,1')->only('verify', 'resend');
}
}
@@ -0,0 +1,42 @@
<?php
namespace App\Http\Controllers\Mobile;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use Illuminate\Auth\Events\Verified;
use Illuminate\Foundation\Auth\EmailVerificationRequest;
class EmailVerificationController extends Controller
{
public function sendVerificationEmail(Request $request)
{
if ($request->user()->hasVerifiedEmail()) {
return [
'message' => 'Already Verified'
];
}
$request->user()->sendEmailVerificationNotification();
return ['status' => 'verification-link-sent'];
}
public function verify(EmailVerificationRequest $request)
{
if ($request->user()->hasVerifiedEmail()) {
return [
'message' => 'Email already verified'
];
}
if ($request->user()->markEmailAsVerified()) {
event(new Verified($request->user()));
}
return [
'message'=>'Email has been verified'
];
}
}
@@ -0,0 +1,39 @@
<?php
namespace App\Http\Controllers\Mobile;
use App\Http\Controllers\Controller;
use Illuminate\Foundation\Auth\SendsPasswordResetEmails;
use Illuminate\Http\Request;
class ForgotPasswordController extends Controller
{
/*
|--------------------------------------------------------------------------
| Password Reset Controller
|--------------------------------------------------------------------------
|
| This controller is responsible for handling password reset emails and
| includes a trait which assists in sending these notifications from
| your application to your users. Feel free to explore this trait.
|
*/
use SendsPasswordResetEmails;
protected function sendResetLinkResponse(Request $request, $response)
{
return response(['message'=> $response]);
}
protected function sendResetLinkFailedResponse(Request $request, $response)
{
return response(['error'=> $response], 422);
}
}
@@ -1,6 +1,6 @@
<?php
namespace App\Http\Controllers\AuthMobile;
namespace App\Http\Controllers\Mobile;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
@@ -24,7 +24,9 @@ class LelongMobileController extends Controller
$currentdate = $currentdate->toDateString();
// $arrayLelong = [];
$lelong = Lelong::where('tarikh_lelong','=',$currentdate)->where('sts_lelong','=',1)->get()->toArray();
$lelong = Lelong::where('tarikh_lelong','=',$currentdate)
->where('sts_lelong','=',1)
->get()->toArray();
foreach($lelong as $index1=>$lel)
{
@@ -1,6 +1,6 @@
<?php
namespace App\Http\Controllers\AuthMobile;
namespace App\Http\Controllers\Mobile;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
@@ -0,0 +1,36 @@
<?php
namespace App\Http\Controllers\Mobile;
use App\Http\Controllers\Controller;
use Illuminate\Foundation\Auth\ResetsPasswords;
use Illuminate\Http\Request;
class ResetPasswordController extends Controller
{
/*
|--------------------------------------------------------------------------
| Password Reset Controller
|--------------------------------------------------------------------------
|
| This controller is responsible for handling password reset requests
| and uses a simple trait to include this behavior. You're free to
| explore this trait and override any methods you wish to tweak.
|
*/
use ResetsPasswords;
protected function sendResetResponse(Request $request, $response)
{
return response(['message'=> trans($response)]);
}
protected function sendResetFailedResponse(Request $request, $response)
{
return response(['error'=> trans($response)], 422);
}
}
@@ -1,6 +1,6 @@
<?php
namespace App\Http\Controllers\AuthMobile;
namespace App\Http\Controllers\Mobile;
use App\Http\Controllers\Controller;
use Illuminate\Support\Facades\Validator;
@@ -0,0 +1,99 @@
<?php
namespace App\Http\Controllers\Mobile;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use Illuminate\Auth\Events\Verified;
use Illuminate\Foundation\Auth\VerifiesEmails;
use Illuminate\Auth\Access\AuthorizationException;
class VerificationController extends Controller
{
/*
|--------------------------------------------------------------------------
| Email Verification Controller
|--------------------------------------------------------------------------
|
| This controller is responsible for handling email verification for any
| user that recently registered with the application. Emails may also
| be re-sent if the user didn't receive the original email message.
|
*/
use VerifiesEmails;
/**
* Where to redirect users after verification.
*
* @var string
*/
protected $redirectTo = '/';
/**
* Create a new controller instance.
*
* @return void
*/
public function __construct()
{
$this->middleware('auth:api')->only('resend');
$this->middleware('signed')->only('verify');
$this->middleware('throttle:6,1')->only('verify', 'resend');
}
/**
* Resend the email verification notification.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function resend(Request $request)
{
if ($request->user()->hasVerifiedEmail()) {
return response(['message'=>'Already verified']);
}
$request->user()->sendEmailVerificationNotification();
if ($request->wantsJson()) {
return response(['message' => 'Email Sent']);
}
return back()->with('resent', true);
}
/**
* Mark the authenticated user's email address as verified.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
* @throws \Illuminate\Auth\Access\AuthorizationException
*/
public function verify(Request $request)
{
auth()->loginUsingId($request->route('id'));
if ($request->route('id') != $request->user()->getKey()) {
throw new AuthorizationException;
}
if ($request->user()->hasVerifiedEmail()) {
return response(['message'=>'Already verified']);
// return redirect($this->redirectPath());
}
if ($request->user()->markEmailAsVerified()) {
event(new Verified($request->user()));
}
return response(['message'=>'Successfully verified']);
}
}