簡體   English   中英

使用Ajax成功注冊后如何登錄用戶? Laravel 5.4

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM