Auth

MĂ„l

I slutet av dagen ska alla ha ett fungerande loginsystem

Listeners

//Adding values
firebase.database().ref("todos")
  .on("child_added",   (snapshot) => {})
//Removing values
firebase.database().ref("todos")
  .on("child_removed", (snapshot) => {})
//Changing values
firebase.database().ref("todos")
  .on("child_changed", (snapshot) => {})

Firebase skickar bara ut vÀrdena, vi mÄste sjÀlv hantera hur det lagras

firebase.database().ref("todos")
  .on("child_added", (snapshot) => {
    //Clone the state
    const newTodoList = [...this.state.todos];
    //Push new values
    newTodoList.push(snapshot.val());
    //Replace state
    this.setState({ todos: newTodoList });
});
firebase.database().ref("todos")
  .on("child_removed", (snapshot) => {
    //Clone the state
    const clonedList = [...this.state.todos];
    //Filter the cloned state, return new array
    const newTodoList = clonedList.filter((item) => {
      //Return every object except the removed
      return item.key !== snapshot.key;
    });
    //Replace state
    this.setState({ todos: newTodoList });
});
  • Synka databasen med state
  • Gör en klon av state
  • AnvĂ€nd .catch() nĂ€r du kan
  • Se upp för null-vĂ€rden

firebase.auth()

firebase autentifikation bygger pÄ OAuth2

En populÀr lösning för frontend som lÀgger till ett extra steg i autentiseringen

Jobbigt att implementera sjÀlv

I'm learning about security

sup

OAuth Àr en öppen standard för autentisering, som anvÀnds över internet för att autentisera anvÀndare till tredje part, utan att anvÀndaren skickar nÄgot lösenord.

Google fungerar som en notarie som sÀger att jag Àr jag utan att kÀnslig information om mig lÀcker

Allting vi gjorde i PHP hÀnder fortfarande

+ massa annat

Allt detta i: firebase.auth()

one function to bind them

firebase
  .auth()
  .createUserWithEmailAndPassword(email, password)

Sparar INTE vÀrdet i realtidsdatabasen

one function to bind them

firebase
  .auth()
  .createUserWithEmailAndPassword(email, password)
  .catch(error => console.log(error))

Errorhantering ett mÄste hÀr!

one function to find them

firebase
  .auth()
  .signInWithEmailAndPassword(email, password)

Sparar session och i localstorage

Behöver inte ha flera callbacks, login sköter vi i en annan funktion

one function to find them

firebase
  .auth()
  .signInWithEmailAndPassword(email, password)
  .catch(error => console.log(error));

one function to rule them all

firebase.auth().onAuthStateChanged(user => {
  if (user) {
    //Logged in,
  } else {
    //Denied, user === null
  }
});

Detta var default innan, bara om auth finns

{
  "rules": {
    ".read": "auth != null",
    ".write": "auth != null"
  }
}

NĂ€sta vecka:

Hur vi strukturerar databasen

SĂ€kerhetsregler

Deploy to production

+ Jobba pÄ projektet

Resten av dagen:

Implementera login pÄ egen hand

Informera mig i person eller via Slack vad du har tÀnkt bygga för sida

Jag ger gÀrna feedback pÄ upplÀgget