更改密码不断重定向到同一页面
Change password keeps redirecting to same page
我很难调试这段代码。我是 laravel 的新手,我不知道为什么即使我使用了正确的方法,这段代码仍然会重定向到同一页面。我正在使用 laravel 的默认身份验证。我不知道我是否遗漏了什么。这是代码。谢谢!
<?php
namespace App\Http\Controllers\Auth;
use App\User;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Hash;
class ChangePasswordController extends Controller
{
public function index(){
return view('Auth.passwords.changepassword');
}
public function changepassword(Request $request){
$this->validate($request, [
'oldpassword' => 'required',
'password' => 'required|confirmed'
]);
$hashedPassword = Auth::user()->password;
if(Hash::check($request->oldpassword, $hashedPassword)) {
$user = User::find(Auth::id());
$user->password = Hash::make($request->password);
$user->save();
Auth::logout();
return redirect()->route('login')->with('successMsg', "Password successfully changed");
}else{
return redirect()->back()->with('errorMsg', "Old Password is invalid");
}
}
}
试试这个代码
$this->validate($request, [
'current_password' => 'required',
'password' => 'required|min:6',
'password_confirmation' => 'required|same:password'
]);
$current_password = $request->current_password;
$user = auth()->user();
if (Hash::check($current_password, $user->password)) {
$user->fill([
'password' => Hash::make($request->password)
])->save();
return redirect()->back()->with('success', 'Password Updated');
} else{
return redirect()->back()->with('error', 'Sorry a problem occurred while Updating this Password.');
}
我很难调试这段代码。我是 laravel 的新手,我不知道为什么即使我使用了正确的方法,这段代码仍然会重定向到同一页面。我正在使用 laravel 的默认身份验证。我不知道我是否遗漏了什么。这是代码。谢谢!
<?php
namespace App\Http\Controllers\Auth;
use App\User;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Hash;
class ChangePasswordController extends Controller
{
public function index(){
return view('Auth.passwords.changepassword');
}
public function changepassword(Request $request){
$this->validate($request, [
'oldpassword' => 'required',
'password' => 'required|confirmed'
]);
$hashedPassword = Auth::user()->password;
if(Hash::check($request->oldpassword, $hashedPassword)) {
$user = User::find(Auth::id());
$user->password = Hash::make($request->password);
$user->save();
Auth::logout();
return redirect()->route('login')->with('successMsg', "Password successfully changed");
}else{
return redirect()->back()->with('errorMsg', "Old Password is invalid");
}
}
}
试试这个代码
$this->validate($request, [
'current_password' => 'required',
'password' => 'required|min:6',
'password_confirmation' => 'required|same:password'
]);
$current_password = $request->current_password;
$user = auth()->user();
if (Hash::check($current_password, $user->password)) {
$user->fill([
'password' => Hash::make($request->password)
])->save();
return redirect()->back()->with('success', 'Password Updated');
} else{
return redirect()->back()->with('error', 'Sorry a problem occurred while Updating this Password.');
}