PasswordController.php 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. <?php
  2. namespace App\Http\Controllers\Auth;
  3. use App\Components\AsyncResponse;
  4. use App\Http\Controllers\Controller;
  5. use App\User;
  6. use Illuminate\Auth\Events\PasswordReset;
  7. use Illuminate\Http\Request;
  8. use Illuminate\Support\Facades\Auth;
  9. use Illuminate\Support\Facades\Hash;
  10. use Illuminate\Support\Str;
  11. class PasswordController extends Controller
  12. {
  13. use AsyncResponse;
  14. /**
  15. * Where to redirect users after resetting their password.
  16. *
  17. * @var string
  18. */
  19. protected $redirectTo = '/home';
  20. /**
  21. * Create a new controller instance.
  22. *
  23. * @return void
  24. */
  25. public function __construct()
  26. {
  27. $this->middleware('auth');
  28. }
  29. public function change()
  30. {
  31. return view('auth.passwords.change');
  32. }
  33. public function update(/*Request $request*/)
  34. {
  35. /** @var User|\stdClass $user */
  36. $user=Auth::user();
  37. if (!$user)$this->error("登录过期,请重新登录");
  38. if (!Hash::check(\request("old"),$user->password))$this->error("旧密码输入有误");
  39. if (Hash::check(\request("pwd"),$user->password))$this->error("新密码不得与旧密码相同");
  40. $user->update(["password" => Hash::make(\request("pwd"))]);
  41. $this->success();
  42. /*$request->validate($this->rules(), $this->validationErrorMessages());
  43. $user->password = Hash::make($request->input('password'));
  44. $user->setRememberToken(Str::random(60));
  45. $user->save();
  46. event(new PasswordReset($user));
  47. Auth::guard()->login($user);
  48. return view('auth.passwords.changed');*/
  49. }
  50. protected function rules()
  51. {
  52. return [
  53. 'old_password' => ['required',function($attr,$val,$fail){
  54. $oldPwd=Auth::user()['password'];
  55. if(!Hash::check($val,$oldPwd)){
  56. $fail('旧密码输入不匹配');
  57. }
  58. }],
  59. 'password' => 'required|confirmed|min:6',
  60. ];
  61. }
  62. /**
  63. * Get the password reset validation error messages.
  64. *
  65. * @return array
  66. */
  67. protected function validationErrorMessages()
  68. {
  69. return [
  70. 'old_password.required'=>'请输入正确的旧密码',
  71. 'password.required'=>'不得为空',
  72. 'password.min'=>'密码至少要输入 :min 位或以上',
  73. 'password.confirmed'=>'两次密码必须一致'
  74. ];
  75. }
  76. }