gpt4 book ai didi

laravel - 如何在不发送电子邮件的情况下通过回答安全问题手动重置密码(Laravel/Vuejs)

转载 作者:行者123 更新时间:2023-12-04 10:22:00 24 4
gpt4 key购买 nike

我目前正在开发一个简单的书店应用程序,其中有几个用户不需要发送电子邮件,因为它将在本地系统中实现,所以有什么方法可以通过添加一些安全问题来自定义 laravel-auth 的密码重置功能用户可以在不通过电子邮件发送重置链接的情况下重置他/她的密码的字段。

任何形式的帮助将不胜感激。

在这里,我尝试了以下代码,但 id 不起作用

web.php 中的代码

Route::post('/main/checklogin', 'UserController@chekQuestions');

用户 Controller 中的代码
 public function chekQuestions(Request $request)
{
$request->validate( [
'email' => 'required|string|email',
'answerQuestionOne' => 'required|string|confirmed',
'answerQuestionTwo' => 'required|string'
] );
$user = User::first();

if($user->email == $request->email && $user->answerQuestionOne == $request->answerQuestionOne && $user->answerQuestionTwo == $request->answerQuestionTwo )
{
// $userEmail = DB::table( 'password_resets' )->where( 'token', $user->token );
// return view('auth.password.reset',compact($userEmail));
return view('auth.password.reset');
}

return response()->json( [
'error' => true,
'message' => 'We cannot find a user with that Email Address'
], 404 );
}

重置密码中的代码.blade
    <div id="register" class="animate form registration_form">
<section class="login_content">
<form method="POST" action="{{ url('/main/checklogin') }}" >
@csrf
<h3>د پټ نو بیا راګرځولو لپاره لاندی امنتی پوښتنو ته ځواب ورکړی </h3>
<div class="form-group has-feedback">
<input id="email" type="email" placeholder=" ایمل" class="form-control @error('email') is-invalid @enderror" name="email" value="{{ old('email') }}" required autocomplete="email" autofocus>

@error('email')
<span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong>
</span>
@enderror
<div class="form-control-feedback">
<i class="fa fa-envelope-o text-muted"></i>
</div>
</div>
<div>
<input id="answerQuestionOne" placeholder="لومړۍ امنیتي پوښتنه" type="text" class="form-control @error('answerQuestionOne') is-invalid @enderror" name="answerQuestionOne" value="{{ old('answerQuestionOne') }}" required autocomplete="answerQuestionOne" autofocus>

@error('answerQuestionOne')
<span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong>
</span>
@enderror
</div>
<div>
<input id="answerQuestionTwo" placeholder="دوهمه امنیتي پوښتنه " type="text" class="form-control @error('answerQuestionTwo') is-invalid @enderror" name="answerQuestionTwo" value="{{ old('answerQuestionTwo') }}" required autocomplete="answerQuestionTwo" autofocus>

@error('answerQuestionTwo')
<span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong>
</span>
@enderror
</div>

<button type="submit" class="btn btn-default btn-block">خوندی کړی </button>



<div class="clearfix"></div>
<div class="separator">
<p class="change_link">
<a href="#signin" class="to_register"> تاسو دمخه غړی یاست ننوتل </a>
</p>

<div class="clearfix"></div>
<br />
</form>
</section>
</div>

最佳答案

尝试这个

Controller 中的代码

public function getview(Request $request)
{
$user=new User();
$anserone= $request->answerQuestionOne;
$anstwo = $request->answerQuestionTwo;
return view('auth.question',compact('user','anserone','anstwo'));
}

public function chekQuestions(Request $request)
{
$this->validate($request, [
'email' => 'required|string|email',
'answerQuestionOne' => 'required',
'answerQuestionTwo' => 'required'
]);

$user = User::where('email', $request->email)->first();

if ( $user == null) {
//
$user=new User();
$user->email= $request->email;
$anserone= $request->answerQuestionOne;
$anstwo = $request->answerQuestionTwo;
Session::flash('message', 'دا ایمل شتون نلری');
return view('auth.question',compact('user','anserone','anstwo'));

}
if ( $user->answerQuestionOne == null || $user->answerQuestionTwo == null) {
//
$user=new User();
$user->email= $request->email;
$anserone= $request->answerQuestionOne;
$anstwo = $request->answerQuestionTwo;

Session::flash('message4', 'هیڅ مورد نشته، لمړی تاسی خپل امنیتی ځوابونه خوندی کړی');
return view('auth.question',compact('user','anserone','anstwo'));

}
if ($user->answerQuestionOne != $request->answerQuestionOne) {
$anserone= $request->answerQuestionOne;
$anstwo = $request->answerQuestionTwo;
Session::flash('message2', 'دپښتنو ځوابونه مو ناسم وو');
return view('auth.question',compact('user','anserone','anstwo'));
}
if ( $user->answerQuestionTwo != $request->answerQuestionTwo) {
$anstwo = $request->answerQuestionTwo;
$anserone= $request->answerQuestionOne;

Session::flash('message3', 'دپښتنو ځوابونه مو ناسم وو');
return view('auth.question',compact('user','anstwo','anserone'));
}

return view('auth.updatePassword',compact('user'));
}
public function updagePassword(Request $request)
{
$this->validate($request, [
'email' => 'required|string|email',
'password' => 'required|min:8'
]);
// $user = User::first();
$user = User::where('email', $request->email)->first();
if ( $user == null) {
//
$user=new User();
$user->email= $request->email;
// $anserone= $request->answerQuestionOne;
// $anstwo = $request->answerQuestionTwo;
Session::flash('message', 'دا ایمل شتون نلری');
return view('auth.updatePassword',compact('user'));

}

if ($request->password_confirmation != $request->password) {
Session::flash('message3', 'پټ نوم مطابقت نلری');
return view('auth.updatePassword',compact('user'));
}

$user->where('email', $request->email)->update([
'password' => Hash::make($request->password)
]);
return redirect()->route('login');

}

**code in updatePassword.blade**

@extends('layouts.header')
<body class="login">
<div>
<a class="hiddenanchor" id="signup"></a>
<a class="hiddenanchor" id="signin"></a>
<a class="hiddenanchor" id="reset"></a>

<div class="login_wrapper">
<section class="login_content">
<form method="POST" action="{{route('update.question')}}" >
@csrf
<h3>د پټ نوم تازه کړی </h3>
<div class="form-group has-feedback">
<input id="email" type="email" placeholder=" ایمل" class="form-control "name="email" value="{{$user->email}}" required autocomplete="email" autofocus>

@if(Session::has('message'))
<p class="bg-danger">{{session('message')}} </p>

@endif
<div class="form-control-feedback">
<i class="fa fa-envelope-o text-muted"></i>
</div>
</div>

<div>

<input id="password" type="password" placeholder="پټ نوم" class="form-control" name="password" required minlength="8">
{{-- <input id="answerQuestionOne" placeholder="ځواب مو دلته ولیکی" type="text" class="form-control" name="answerQuestionOne" value="{{$anserone}}" required autocomplete="answerQuestionOne" autofocus> --}}
@if(Session::has('message2'))
<p class="bg-danger">{{session('message2')}} </p>

@endif
</div>

<div>
<input id="password-confirm" type="password" placeholder="دپټنوم تأیید " class="form-control" name="password_confirmation" minlength="4" required >
{{-- <input id="answerQuestionTwo" placeholder="ځواب مو دلته ولیکی " type="text" class="form-control " name="answerQuestionTwo" value="{{$anstwo}}" required autocomplete="answerQuestionTwo" autofocus> --}}
@if(Session::has('message3'))
<p class="bg-danger">{{session('message3')}} </p>

@endif
</div>

<button type="submit" class="btn btn-default btn-block">خوندی کړی </button>



<div class="clearfix"></div>
<div class="separator">
{{-- <p class="change_link">
<a href="#signin" class="to_register"> تاسو دمخه غړی یاست ننوتل </a>
</p> --}}

<div class="clearfix"></div>
<br />
</form>
</section>
</div>
{{-- reset password via email --}}

{{-- </div> --}}
</div>
</body>
</html>

**Code in question.blade**

@extends('layouts.header')
<body class="login">
<div>
<a class="hiddenanchor" id="signup"></a>
<a class="hiddenanchor" id="signin"></a>
<a class="hiddenanchor" id="reset"></a>

<div class="login_wrapper">
<section class="login_content">
<form method="POST" action="{{route('check.question')}}" >
@csrf
<h3>د پټ نو بیا راګرځولو لپاره لاندی امنیتی پوښتنو ته ځواب ورکړی </h3>
<div> @if(Session::has('message4'))
<h4 class="bg-danger">{{session('message4')}} </h4>

@endif</div>
<div class="form-group has-feedback">
<input id="email" type="email" placeholder=" ایمل" class="form-control "name="email" value="{{$user->email}}" required autocomplete="email" autofocus>

@if(Session::has('message'))
<p class="bg-danger">{{session('message')}} </p>

@endif
<div class="form-control-feedback">
<i class="fa fa-envelope-o text-muted"></i>
</div>
</div>
<div>
<select

style="margin-bottom:20px;width: 100%;padding: 7px; "
>
<option value selected>مهرباني وکړئ خپله لمومړنی امنيتي پوښتنه وټاکئ</option>
<option>ستا د خوښې رنګ کوم دی؟</option>
<option>تاسو په کوم ښار کې زیږیدلی یاست؟</option>
<option>ستا د خوښې خواړه څه دي؟</option>
<option>ستاسو د غوره ملګري لومړی نوم څه شی دی؟</option>
<option>کوم ورزش مو خوښ دی؟</option>
<option>ستاسو د خوښې سپورټ ټیم څه شی دی؟</option>
</select>

</div>
<div>


<input id="answerQuestionOne" placeholder="ځواب مو دلته ولیکی" type="text" class="form-control" name="answerQuestionOne" value="{{$anserone}}" required autocomplete="answerQuestionOne" autofocus>
@if(Session::has('message2'))
<p class="bg-danger">{{session('message2')}} </p>

@endif
</div>
<div>
<select style="margin-bottom:20px;width: 100%;padding: 7px; ">
<option value selected>مهرباني وکړئ خپله دوهمه امنيتي پوښتنه وټاکئ</option>
<option>ستا د خوښې رنګ کوم دی؟</option>
<option>تاسو په کوم ښار کې زیږیدلی یاست؟</option>
<option>ستا د خوښې خواړه څه دي؟</option>
<option>ستاسو د غوره ملګري لومړی نوم څه شی دی؟</option>
<option>کوم ورزش مو خوښ دی؟</option>
<option>ستاسو د خوښې سپورټ ټیم څه شی دی؟</option>
</select>

</div>
<div>
<input id="answerQuestionTwo" placeholder="ځواب مو دلته ولیکی " type="text" class="form-control " name="answerQuestionTwo" value="{{$anstwo}}" required autocomplete="answerQuestionTwo" autofocus>
@if(Session::has('message3'))
<p class="bg-danger">{{session('message3')}} </p>

@endif
</div>

<button type="submit" class="btn btn-default btn-block">خوندی کړی </button>



<div class="clearfix"></div>
<div class="separator">
{{-- <p class="change_link">
<a href="#signin" class="to_register"> تاسو دمخه غړی یاست ننوتل </a>
</p> --}}

<div class="clearfix"></div>
<br />
</form>
</section>
</div>
{{-- reset password via email --}}

{{-- </div> --}}
</div>
</body>
</html>

关于laravel - 如何在不发送电子邮件的情况下通过回答安全问题手动重置密码(Laravel/Vuejs),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60809164/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com