I have written following code to send reset password link to user and it is working perfect when user is not logged in and getting mail too but when I try to send reset password when user is logged in it is not working.
I have checked when user is logged in postEmail
method is not calling by Ajax. Any idea where I am wrong.
Here is my code
Form:
<form id="resetAccountForm" class="form-horizontal" role="form" method="POST" action="http://localhost/project-name/password/email">
<input type="hidden" name="_token" id="_token" value="OaIG5OWKP3F5YrZwaVDN6uYbATtDqKzpgZ5S66mk">
<input type="hidden" name="nickname" value="example">
<input type="hidden" name="ID" value="example@gmail.com">
<div class="find_acc_btn_contianer re_container">
<button class="reset_pwd reset-my-account" type="submit">Reset</button>
</div>
</form>
JS Code for Ajax submission:
$(document.body).on('submit', 'form#resetAccountForm', function(event) {
event.preventDefault();
var formData = $(this).serialize(); // form data as string
var formAction = $(this).attr('action'); // form handler url
var formMethod = $(this).attr('method'); // GET, POST
$.ajaxSetup({
headers: {
'X-XSRF-Token': $('meta[name="_token"]').attr('content')
}
});
$.ajax({
type: formMethod,
url: formAction,
data: formData,
cache: false,
beforeSend: function() {
$("#ajax-loader").show();
$('.reset-my-account').prop('disabled', true);
},
success: function(data) {
$("#ajax-loader").hide();
}
});
});
Routes:
Route::get('home', 'HomeController@index');
Route::controllers([
'auth'=>'Auth\AuthController',
'password'=>'Auth\PasswordController',
]);
Route::get('password/email', 'Auth\PasswordController@getEmail');
Route::post('password/email', 'Auth\PasswordController@postEmail');
PasswordController.php
/**
* Send a reset link to the given user.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function postEmail(Request $request)
{
$this->validate($request, ['ID' => 'required|email']);
// Pass data to reset password mail template
view()->composer('emails.password', function($view) {
$view->with([
'Nickname' => Input::get('nickname'),
]);
});
$response = Password::sendResetLink($request->only('ID'), function (Message $message) {
$message->subject($this->getEmailSubject());
});
if ($response == "passwords.sent") {
$html = '<div class="img_left_dv"><img src="resources/assets/front/images/suggestion_2.png" alt=""/></div>
<div class="text_right_dv">
<h3>'.Input::get('nickname').'</h3>
<p><a href="javascript:void(0);">'.Input::get('ID').'</a> '.trans('messages.reset_password_popup.confirmation_message').'</p>
</div>';
echo $html;
}
}
via Chebli Mohamed
Aucun commentaire:
Enregistrer un commentaire