Я создаю сайт с Django, на котором могут быть зарегистрированы пользователи.Для этого процесса регистрации я использую Аутентификацию Firebase.Когда я пробую это на моей локальной машине, в режиме отладки Django, установленном в true, все работает нормально.Но когда я обращаюсь к своей облачной машине, на которой для отладки задано значение false и используется https, аутентификация Firebase не работает.Он просто не аутентифицирует пользователей, сообщение об ошибке не отображается.
Это мой код входа в систему:
<script src="https://www.gstatic.com/firebasejs/5.10.0/firebase.js"></script>
<!-- Firebase App is always required and must be first -->
<script src="https://www.gstatic.com/firebasejs/5.8.4/firebase-app.js"></script>
<!-- Add additional services that you want to use -->
<script src="https://www.gstatic.com/firebasejs/5.8.4/firebase-auth.js"></script>
<script>
// Initialize Firebase
var config = {
apiKey: "...",
authDomain: "...",
databaseURL: "...",
projectId: "...",
storageBucket: "...",
messagingSenderId: "..."
};
firebase.initializeApp(config);
</script>
<script>
function googleLogin(){
var provider = new firebase.auth.GoogleAuthProvider();
firebase.auth().useDeviceLanguage();
firebase.auth().signInWithPopup(provider).then(function(result) {
// This gives you a Google Access Token. You can use it to access the Google API.
var token = result.credential.accessToken;
// The signed-in user info.
var user = result.user;
// ...
firebase.auth().currentUser.getIdToken(/* forceRefresh */ true).then(function(idToken) {
var csrftoken = '{{ csrf_token }}';
$.post("/api/login", {'csrfmiddlewaretoken': csrftoken, 'token': idToken});
document.location.reload(true);
}).catch(function(error) {
alert("Error al iniciar sesión")
// Handle error
});
}).catch(function(error) {
// Handle Errors here.
var errorCode = error.code;
var errorMessage = error.message;
// The email of the user's account used.
var email = error.email;
// The firebase.auth.AuthCredential type that was used.
var credential = error.credential;
// ...
});
}
</script>