Продлите время и дату истечения срока действия в Firebase OAuth2 access JWT Token - PullRequest
0 голосов
/ 11 сентября 2018

Я хочу установить максимальную дату и время истечения для Firebase OAuth2 JWT токен доступа - https://firebase.google.com/docs/database/rest/auth

Я пробовал некоторые методы Не работает. Вот код Google для создания токена доступа для базы данных реального времени Firebase

Клиент Google API Node.js

var {google} = require("googleapis");

// Load the service account key JSON file.
var serviceAccount = require("./myfileauth.json");

// Define the required scopes.
var scopes = [
  "https://www.googleapis.com/auth/userinfo.email",
  "https://www.googleapis.com/auth/firebase.database"
];

// Authenticate a JWT client with the service account.
var jwtClient = new google.auth.JWT(
  serviceAccount.client_email,
  null,
  serviceAccount.private_key,
  scopes
);

// Use the JWT client to generate an access token.
jwtClient.authorize(function(error, tokens) {
  if (error) {
    console.log("Error making request to generate access token:", error);
  } else if (tokens.access_token === null) {
    console.log("Provided service account does not have permission to generate access tokens");
  } else {
    var accessToken = tokens.access_token;
    console.log(accessToken);
  }
});

но работает только на короткое время. Я хочу увеличить дату и время истечения ...

1 Ответ

0 голосов
/ 11 сентября 2018

Если вы хотите иметь долгоживущие токены сеансов, я рекомендую просмотреть сеансовые куки . Они могут быть созданы из Firebase Admin SDK, и перечислите это как одно из преимуществ:

Возможность создавать сеансовые куки с пользовательским сроком действия от 5 минут до 2 недель.

Он работает, беря токен идентификатора (от клиента), который является частью обычного потока аутентификации Firebase, и обменивая его на cookie сеанса (на сервере) с:

// Set session expiration to 5 days.
const expiresIn = 60 * 60 * 24 * 5 * 1000;
// Create the session cookie. This will also verify the ID token in the process.
// The session cookie will have the same claims as the ID token.
// To only allow session cookie setting on recent sign-in, auth_time in ID token
// can be checked to ensure user was recently signed in before creating a session cookie.
admin.auth().createSessionCookie(idToken, {expiresIn}).then((sessionCookie) => { ...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...