Laravel Ajax登录未设置用户Auth会话

时间:2019-09-03 19:32:04

标签: laravel

我在laravel框架中工作。我有两种登录方式

  • Ajax基本登录
  • 简单的表单提交登录名

当我提交我的简单登录表单时,用户登录成功,但是当我通过ajax请求登录用户时,我会收到登录成功的响应,但是当我在ajax登录后提交另一表单时,它将重定向到简单登录页面进行登录,因为Ajax登录中未正确设置用户身份验证的数量。

这是中间件

public function handle($request, Closure $next, $guard = null) {
    if (Auth::check()) {
        return $next($request);
    }
    return redirect()->route('userLogin');
}

控制器方法

public function ajaxPostLogin($inputs) {
    try {
        $inputs = $this->validateInputs($inputs, RulesHelper::$user_login, RulesHelper::$user_login_msg);
        $inputs["user_type"] = 'user';
        $response = $this->getObj(UserHelper::class)->ajaxUserLogin($inputs);
        if (isset($response["success"])) {
            echo json_encode(["success" => true, 'token' => csrf_token()]);
            die;
        } else {
            echo json_encode(["success" => false, 'error' => $response]);
            die;
        }
    } catch (\Exception $ex) {
        echo json_encode(["success" => false, "message" => $ex->getMessage()]);
        die;
    }
}

我不知道我在哪里做错。以正确的方式进行指导。 谢谢

1 个答案:

答案 0 :(得分:0)

在Laravel中。通过AJAX对用户进行身份验证后,请勿回显任何响应。仅在错误时回显。没有成功。这对我也有帮助。