[英]How to log user in after successful registration using Ajax ? Laravel 5.4
我正在嘗試使用Ajax使用模式注冊框。 它可以工作,但是我也該如何登錄用戶?
這是RegisterController.php中的重載register
函數:
/**
* Handle a registration request for the application (overloaded).
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function register(Request $request)
{
$validator = $this->validator($request->all());
if ($validator->fails()) {
$this->throwValidationException(
$request, $validator
);
}
$this->create($request->all());
return response()->json();
}
這是Laravel附帶的標准功能,並在注冊時登錄用戶。
/**
* Handle a registration request for the application.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function register(Request $request)
{
$this->validator($request->all())->validate();
event(new Registered($user = $this->create($request->all())));
$this->guard()->login($user);
return $this->registered($request, $user)
?: redirect($this->redirectPath());
}
這是AJAX調用:
$(document).on('submit', '#formRegister', function(e) {
e.preventDefault();
$('input+small').text('');
$('input').parent().removeClass('has-error');
$.ajax({
method: $(this).attr('method'),
url: $(this).attr('action'),
data: $(this).serialize(),
dataType: "json"
})
.done(function(data) {
console.log(data);
$('.alert-success').removeClass('hidden');
$('#myModal').modal('hide');
})
.fail(function(data) {
console.log(data);
$.each(data.responseJSON, function (key, value) {
var input = '#formRegister input[name=' + key + ']';
$(input + '+small').text(value);
$(input).parent().addClass('has-error');
});
});
});
如何登錄用戶並重定向到/home
在AJAX請求中使用success
。
$.ajax({
method: $(this).attr('method'),
url: $(this).attr('action'),
data: $(this).serialize(),
dataType: "json",
//add success option with following callback function
success: function(response) {
//(optional) check for response
window.location.href = '/home' //your desired url
}
});
PS :因為它將在執行AJAX請求后重定向.done
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.