2017-02-09 3 views
2

ist es möglich, nur die Firebase Auth zu verwenden und dann eine eigene API mit eigener Datenbank zu erstellen?Firebase Auth + Own Api

Also schreibe ich eine REST-API, die das Firebase-Token verwendet, um zu authentifizieren.

Danke!

Antwort

3

starten Sie auf der Technologie ab, die Sie für das Back-End-API verwendet werden. Es gibt eine Firebase Admin SDK, die sich an Java, Python und Node-Entwickler richtet, aber ich denke, dass die Funktionalität, nach der Sie suchen, nur im Node SDK verfügbar ist (obwohl ich glaube, dass es hierfür Umgehungslösungen gibt).

Die Art und Weise dies funktioniert, ist, dass, nachdem die Benutzer Zeichen auf der Client-Seite, sie einen Token firebase.auth().currentUser.getIdToken() mit anfordern können, die dann an Ihr Backend übergeben werden können, die überprüft werden können dann für die folgende Beispiel sehen, wie es sein könnte getan mit Knoten und Restify.

const server = restify.createServer({}); 
server.use(validateJwt); 

function validateJwt(req, res, next) { 

    if(!req.headers.token){ 
     //reject 
    } 
    admin.auth().verifyIdToken(req.headers.token).then(decodedToken=>{ 
     console.log(`token for user ${decodedToken.sub} valid`); 
     admin.auth().getUser(decodedToken.sub).then(user=>{ 
      console.log(`fetched user ${user.email}`); 
      next(); 
     }).catch(err=>{ 
      res.send(500, 'the user with the ID does not exist in firebase'); 
     }) 
    }).catch(err=>{ 
     console.log(`token validation failed: ${err}`); 
     res.send(401, 'authentication failed')}); 
} 
0

Ich glaube, Sie sollten dies tun können, indem Sie Firebase verwenden, um den Benutzer zu autorisieren und dann Lesezugriff auf einen Link zu erlauben, der nur für authentifizierte Benutzer sicher gespeichert ist. Dies könnte dann mit der Datenbank verlinken, wenn Sie das meinen. Ich würde annehmen, dass Sie bereits hier begonnen haben, aber das ist, wo Understand Firebase Realtime Database Rules