我遇到了Laravel會話創建和讀取的問題。 我可以創建會話值,但問題是訪問數據。 如果我在POST請求中創建會話值,那麼我無法通過GET請求訪問它。Laravel無法檢索保存在POST請求中的會話數據
這裏是我的路線
Route::get('/', '[email protected]');
Route::get('/admin/dashboard', '[email protected]');
Route::post('/admin/login_admin', '[email protected]');
Route::post('/admin/login_test', '[email protected]');
Route::get('/admin/login', '[email protected]');
這裏doLogin使用POST方法:
public function doLogin(Request $request){
$email = $request->input("email");
$password = $request->input("password");
$checkerInfo = AdminGetLoginChecker($email, $password);
//if logged in
if($checkerInfo){
$request->session()->put('loggedIn', '1');
$request->session()->put('userId', $checkerInfo);
$request->session()->save();
return response()->json([
'success' => true,
'message' => 'logged In'
]);
}
return response()->json([
'success' => false,
'message' => 'Incorrect User Email, Password'
]);
}
現在的問題是,如果要求在其他GET請求部分訪問會話值,那麼就沒有允許訪問。
public function dashboard(Request $request)
{
$data = $request->session()->all();
print_r($data);
return view('welcome', ['name' => 'James']);
}
這裏它沒有顯示保存的會話數據,因爲它是一個GET請求。
現在,如果嘗試使用POST請求,它會更早顯示doLogin方法保存的數據,以獲得任何其它方法請求
//it's a POST requset
public function test(Request $request)
{
$data = $request->session()->all();
print_r($data);
}
我怎麼能訪問GET請求方法的會話數據?
由於事先
更新:
請注意,在verifyCsrfToken middelwere的節選區域,以避免CSRF令牌問題添加URL 「 '/管理/ login_admin'」,同時發佈的數據
namespace App\Http\Middleware;
use Illuminate\Foundation\Http\Middleware\VerifyCsrfToken as BaseVerifier;
class VerifyCsrfToken extends BaseVerifier
{
/**
* The URIs that should be excluded from CSRF verification.
*
* @var array
*/
protected $except = [
//
'url' => '/admin/login_admin'
];
}
號我唯一的工作用於通過POST請求訪問的方法。使用GET請求的方法不顯示會話值。 – FRabbi