我遇到了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