我正在制作基于网络的游戏。游戏需要先登录,所以我像往常一样使用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未经授权。尝试像上图一样控制日志。
由于
答案 0 :(得分:0)
根据Laravel使用Javascript进行API身份验证的文档,我发现您使用Javascript进行Laravel授权:
如果您使用的是其他JavaScript框架,那么您应该这样做 确定它配置为发送X-CSRF-TOKEN和X-Requested-With 每个传出请求的标题。
您能否确保标题中始终存在X-CSRF-TOKEN和X-Requested-With。