Я работаю на моем веб-сайте (http://mysite.example.com);, где я внедрил систему входа в систему, используя Firebase
.
Другими словами, когда посетители заходят, они должны войти в систему как пользователь Firebase
, а затем (только), если это произойдет, они могут попасть на мой сайт.
Хотя это функционально работает, мне все еще нужно обезопасить процесс. Поиск в сети приводит меня к большому количеству материала. Но я хотел бы знать, как далеко я должен идти для своей конкретной цели. Другими словами, я не хочу тратить часы на изучение, если я могу сделать то, что мне нужно, в несколько простых шагов.
Один документ, который я нашел, таков:
https://firebase.google.com/docs/auth/admin/verify-id-tokens#retrieve_id_tokens_on_clients
Вот два вопроса, которые я имею в виду:
- Нужно ли указывать на моем веб-сайте URL-адрес типа https
чем http ?
- Нужно ли устанавливать Firebase Admin SDK ?
В упомянутом выше документе говорится в примечании:
Многие варианты использования для проверки токенов ID на сервере могут быть выполнены с помощью ....
Но я не уверен, что это позволит мне выбрать легкий путь.
Вот тип кода, который я сейчас использую:
firebase.auth().onAuthStateChanged(function(user) {
if (user) {
// User is signed in.
checkUser();
} else {
// No user is signed in.
console.log("No user has logged in yet.");
}
});
function checkUser() {
let user = firebase.auth().currentUser;
if (user) {
.........
// The user is signed in, we open the door to the web site.
window.open("http://mysite.example.com",'_self');
} else {
// No user is signed in.
console.log("No user is logged in.");
}
}
В месте, отмеченном ..... Я не делаю много; но мне может понадобиться добавить такой код (с некоторой довольно сложной проверкой):
user.getIdToken(true).then(function(idToken) {
// Send token to your backend via HTTPS
// ...
console.log("getIdToken - Seem-To-Be-OK! \n\t" + idToken);
}).catch(function(error) {
// Handle error
console.log("getIdToken - Error: " + error);
});
Это то, что я хотел бы подтвердить, а также знать, каково простейшее решение.