Php 调用Auth::login()后会话立即停止
Stackoverflow社区!我们已经为这个问题挣扎了一段时间。我们正在尝试将我们的LaravelV4站点升级到LaravelV7。到目前为止,一切都很好。当我们使用登录功能时,它会正确地授权用户,但一旦重定向,会话就会终止。我们已经检查了一遍又一遍,但根本找不到任何可能导致问题的原因。以下是可疑函数:Php 调用Auth::login()后会话立即停止,php,mysql,laravel,Php,Mysql,Laravel,Stackoverflow社区!我们已经为这个问题挣扎了一段时间。我们正在尝试将我们的LaravelV4站点升级到LaravelV7。到目前为止,一切都很好。当我们使用登录功能时,它会正确地授权用户,但一旦重定向,会话就会终止。我们已经检查了一遍又一遍,但根本找不到任何可能导致问题的原因。以下是可疑函数: public function loginv2() { if (Auth::check()) { return Redirect::action('FrontContr
public function loginv2()
{
if (Auth::check()) {
return Redirect::action('FrontController@showWelcome')->withMessage("Already logged in.");
}
if (!Auth::check() && !isset($_GET['token']))
{
$_SESSION['redirect'] = "https://zjxartcc.org";
header("Location: https://login.vatusa.net/uls/v2/login?fac=ZJX");
exit;
}
$token = $_GET['token'];
$parts = explode('.', $token);
$token = $this->base64url_decode($parts[1]);
$jwk = json_decode('{"alg":"HS256","use":"sig","kty":"oct","k":"..."}', true);
$algorithms = ['HS256' => 'sha256', 'HS384' => 'sha384', 'HS512' => 'sha512'];
if (!isset($algorithms[$jwk['alg']])) {
return Redirect::action('FrontController@showWelcome')->withMessage("Invalid Operation");
}
$sig = $this->base64url_encode(hash_hmac($algorithms[$jwk['alg']], "$parts[0].$parts[1]", $this->base64url_decode($jwk['k']), true));
if($sig == $parts[2]) {
$token = json_decode($token, true);
if($token['iss'] != 'VATUSA') {
return Redirect::action('FrontController@showWelcome')->withMessage("Not issued from VATUSA");
}
if($token['aud'] != 'ZJX') {
return Redirect::action('FrontController@showWelcome')->withMessage("Not issued for ZJX");
}
$client = new GuzzleHttp\Client();
$url = "https://login.vatusa.net/uls/v2/info?token={$parts[1]}";
$result = $client->get($url);
$res = json_decode($result->getBody()->__toString(), true);
$userstatuscheck = User::find($res['cid']);
if($userstatuscheck) {
if($userstatuscheck->status == 1) {
return Redirect::action('FrontController@showWelcome')->withMessage("You are not an active controller, and cannot login.");
} else {
Auth::login($userstatuscheck, true);
require("/home2/zjxartcc/public_html/forum/smf_2_api.php");
smfapi_login($userstatuscheck->id);
setcookie("ids_loggedin", $res['cid'], 0, "", ".zjxartcc.org");
$_SESSION['loggedin'] = $res['cid'];
}
} else {
return Redirect::action('FrontController@showWelcome')->withMessage("No user matching your information on the roster.");
}
//update email records and rating
$forum = SMFMember::find($res['cid']);
$forum->email_address = $res['email'];
$forum->save();
$member = User::find($res['cid']);
$member->rating_id = $res['intRating'];
$member->email = $res['email'];
$member->save();
return Redirect::action('FrontController@showWelcome')->withMessage('You have been logged in!');
} else {
return Redirect::action('FrontController@showWelcome')->withMessage("Bad Signature");
}
}
非常感谢所有的帮助和建议!谢谢大家! 是否可以在重定向之前记录/显示系统/错误/后端消息?我不确定laravel的情况,但有点像
控制台.log
消息?嗨!我们回显了试图登录的用户,然后它就死了()。它返回正确的用户,并且该用户确实存在于我们的用户表中。您的意思是,在成功登录之后和重定向之前,它发出了die()
命令?我只看到一个退出代码中的code>命令。你能试着删除/注释该部分,看看是否有不同之处吗?如果没有,您必须查看在登录和重定向之间发生的特定操作。否。我们手动添加了它,以检查它是否正确地验证了用户。现在,它出局了。由于一个非常不起眼的原因,我一直在与类似的问题作斗争。。。我建议您查找中间件文件,如果您添加了自定义/重新安排调用中间件的顺序,这可能会导致会话行为不正常。。。可能会很棘手,我就是这样。祝你好运!是否可以在重定向之前记录/显示系统/错误/后端消息?我不确定laravel的情况,但有点像控制台.log
消息?嗨!我们回显了试图登录的用户,然后它就死了()。它返回正确的用户,并且该用户确实存在于我们的用户表中。您的意思是,在成功登录之后和重定向之前,它发出了die()
命令?我只看到一个退出代码中的code>命令。你能试着删除/注释该部分,看看是否有不同之处吗?如果没有,您必须查看在登录和重定向之间发生的特定操作。否。我们手动添加了它,以检查它是否正确地验证了用户。现在,它出局了。由于一个非常不起眼的原因,我一直在与类似的问题作斗争。。。我建议您查找中间件文件,如果您添加了自定义/重新安排调用中间件的顺序,这可能会导致会话行为不正常。。。可能会很棘手,我就是这样。祝你好运!