I found the problem and solution, and,
You shouldn't do that...
$state = $request->get('state');
$request->session()->put('state',$state);
if(\Auth::check()==false){
session()->regenerate();
}
Because it seems that the state checking is to ensure user is not hack you by input,
You are just skipping the checking...
Instead, I
'domain' = env('DOMAIN', null), //config/session.php
DOMAIN=mysite.dev //.env
DOMAIN=mysite.com //.env production
// change the .env session driver to Redis (Optional)
// clear my browser's cookies
when I die dump the $state (session) and request state,
I found that the session $state is null, just because the session problem.
Other session problem might be that You are using file session but no write permission, thus null $state session.