Сеанс Laravel не работает (Laravel + Firestore) в облаке GooglePhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Сеанс Laravel не работает (Laravel + Firestore) в облаке Google

Сообщение Anonymous »

Я столкнулся с проблемой сеанса в проекте laravel firestore, который развернут в облаке Google. Локально все работает нормально, но даже в облаке Google оно не запускается.
Это мое промежуточное ПО

Код: Выделить всё

class FirestoreAuth {
/**
* Handle an incoming request.
*
* @param  \Closure(\Illuminate\Http\Request): (\Symfony\Component\HttpFoundation\Response)  $next
*/
public function handle(Request $request, Closure $next) {
// Check if the 'user' session variable exists
if (!$request->session()->has('user')) {
session()->forget('user');
return redirect()->route('login'); // Redirect to login if not available
}

return $next($request); // Proceed to the next request
}
}

And User Controller login function
function login(Request $request){
$request->validate([
'email' => 'required|string|email',
'password' => 'required|string|min:8',
]);
// Retrieve user from Firestore
$userCollection = $this->firestore->collection('users');
$query = $userCollection->where('deleted_at', '=', null)->where('email', '=', $request->email)->limit(1);
$userDocuments = $query->documents();
if ($userDocuments->isEmpty()) {
return redirect()->back()->withErrors(['email' => 'User not found.']);
}

$user = $userDocuments->rows()[0];
// Verify password
// dd($user->data()['password']);

if (Hash::check($request->password, $user->data()['password'])) {
// Create a session or token for the user
// You might want to use Laravel's built-in authentication or a custom session mechanism
// Here is a simple example of setting session data
$request->session()->put(['user' => $user->data(),'id' => $user->id()]); // Store user data in session
return redirect()->route('home')->with('success', 'Login successful!');
}
}
Проблема в том, что всякий раз, когда я пытаюсь войти в систему, меня перенаправляют обратно на вход в облако Google. Я ввел правильные учетные данные, но меня все равно перенаправляют для входа в систему, поскольку в сеансе нет пользовательского ключа. Возможно, сеанс не работает при запуске облака Google.

Код: Выделить всё

session(['user' => $user->data(),'id' => $user->id()]); I also tried this way
примечание: я также столкнулся с ошибкой 419, срок действия страницы истек, но я удалил маршрут входа в Verifiedcsrftoken.

Подробнее здесь: https://stackoverflow.com/questions/791 ... -cloud-run
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»