当ajax发送请求时,Laravel未经授权的页面

时间:2016-06-16 08:15:30

标签: laravel authentication unauthorized

unauthorized page

我正在制作基于网络的游戏。游戏需要先登录,所以我像往常一样使用laravel auth :: register和auth :: login,并将中间件auth添加到除登录和注册页面之外的每个页面。 然后使用 smartupdater 检查游戏状态(如果已准备就绪)。

$("section").smartupdater({
    url       : urlCheckStatus,
    data      : data,
    dataType  : 'json',
    minTimeout: 2000
}, function(response){
    var gameStatus = response.data.status;

    if(gameStatus === 'start')
    {
        gameOn();
    }
    else if(gameStatus === 'active')
    {
        pleaseWait();
    }
    else if(gameStatus === 'stop')
    {
        backToMenu();
    }
});

注册登录功能

public function register(Request $request)
{
    $name = $request->input('username');

    $user = new User;
    $user->name     = $request->input('username');
    $user->email    = $name.'@abc.com';
    $user->password = bcrypt(Carbon\Carbon::now());
    $user->grade    = $request->input('grade');
    $user->numb     = $request->input('numb');
    $user->save();

    Auth::login($user, true);

    return redirect('menu');
}

检查游戏状态功能

public function checkGameStatus()
{
    $game_id = Request::input('game_id');
    $data    = Game::find($game_id);

    return response()->json([
        'data'  => $data
    ]);
}

但有时我被扔到登录页面,因为错误401未经授权。尝试像上图一样控制日志。

由于

1 个答案:

答案 0 :(得分:0)

根据Laravel使用Javascript进行API身份验证的文档,我发现您使用Javascript进行Laravel授权:

  

如果您使用的是其他JavaScript框架,那么您应该这样做   确定它配置为发送X-CSRF-TOKEN和X-Requested-With   每个传出请求的标题。

您能否确保标题中始终存在X-CSRF-TOKEN和X-Requested-With。