Могу ли я использовать Sessions с Firebase JWT Token на Laravel для дальнейшей оптимизации моих запросов API? - PullRequest
0 голосов
/ 11 декабря 2019

Я использую Firebase Auth для управления аутентификацией и использую токен JWT для связи с моим внутренним приложением Laravel.

//eg: example.com/home.html

firebase.auth().onAuthStateChanged(function(user) {
    if (user) {
        user.getIdToken(/* forceRefresh */ false).then(function(idToken) {
            storeToken(idToken);
            ajaxCallTest1();
        }).catch(function(error) {
            // Handle error
        });
    }
})


//Laravel
//eg: api.example.com/*

function test1(){
    $firebaseUser = $this->decodeToken($jwtToken_fromFrontend);
    $user = User::where('uid', '=', $firebaseUser->uid)->first();

    //retrieve $user object from Laravel
    //and using the object to process other logic eg: edit profile, grab products & more...
}

на основе приведенного выше примера / потока:

  1. Каждый запрос, который я делаю, должен передавать токен JWT бэкенду
  2. Токен проверки бэкенда
  3. Если токен действителен, захватить пользователя, где uid = firebase-> uid
  4. используя сопоставленный объект и действуя по другой логике

Не слишком ли дорого проверять JWT и получать пользовательские данные при каждом вызове? Могу ли я знать, что это лучший способ работать с этим, мне интересно, можем ли мы установить $ _SESSION, чтобы пропустить процесс №3? как показано ниже:

//Laravel
//eg: api.example.com/*
function test1(){
    if(!isSet($_SESSION['userData']))
    {
        $firebaseUser = $this->decodeToken($jwtToken_fromFrontend);
        $user = User::where('uid', '=', $firebaseUser->uid)->first();
        $_SESSION['userData'] = $user;
    }

    // using $_SESSION['userData'] to process other items
    // so that we can skip 'validate & retrieve $user' steps on our next call
}

При использовании вышеуказанного метода, если мы извлекаем данные непосредственно из $ _SESSION, нам не нужно выполнять запросы при каждом вызове API, могу я узнать, является ли это правильным способом управления? или есть какой-нибудь способ для дальнейшей оптимизации и сделать это с Firebase Auth & Laravel?

спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...