Как проверить пользователя на основе имени пользователя в firebase с помощью пользовательских токенов? - PullRequest
0 голосов
/ 12 октября 2018

Я следовал руководству Firebase по созданию пользовательских токенов Создание пользовательских токенов и хотел бы использовать пользовательский токен для проверки входа пользователя в систему, поскольку документация предполагает, что это возможно.Ниже приведен код, который генерирует пользовательский токен, но как его использовать для проверки имени пользователя в точке входа в систему.Как включить код ниже с Auth.auth().signIn(withCustomToken: customToken ?? "").Документация по пользовательской аутентификации Пользовательская аутентификация , кажется, предполагает, что имя пользователя будет размещено на сервере.Если firebase функционирует как сервер, как это будет работать без ущерба для безопасности базы данных, подвергая пользователей электронной почте.

var admin = require('firebase-admin');

var serviceAccount = require('./serviceAccountKey.json');

admin.initializeApp({
    credential: admin.credential.cert(serviceAccount)
  //  databaseURL: "https://Login-Screen.firebaseio.com"
});

const uid = 'some-uid';
const displayName = "Generic Name";
// const additionalClaims = {
//   premiumAccount: true
// };

admin.auth().createCustomToken(uid)
.then((customToken) => {
  console.log(customToken);
})
.catch((error) => {
  console.log("Error creating custom token: ", error)
});

1 Ответ

0 голосов
/ 12 октября 2018

Насколько я понимаю, сначала вам нужно будет аутентифицировать учетные данные пользователя на конечной точке вашего собственного сервера, и только в случае успеха вы должны вернуть собственный токен для аутентификации с помощью firebase.Из самой документации:

Для этого необходимо создать конечную точку сервера, которая принимает учетные данные для входа, такие как имя пользователя и пароль, и, если учетные данные действительны, возвращает пользовательский JWT.,Пользовательский JWT, возвращенный с вашего сервера, может затем использоваться клиентским устройством для аутентификации в Firebase (iOS, Android, Интернет).

По сути это означает, что Firebase не заботится об имени пользователя или пароле с помощью функции signInWithCustomToken(), а только о том, что пользовательский токен действителен, поэтому вам нужно убедиться, что UUID, который вы генерируетеуникален для каждого пользователя.

...