2017-04-16 34 views
9

Tôi muốn xác thực và giữ phiên qua NodeJS với Firebase. Khách hàng không thể giao tiếp trực tiếp với Firebase.Xác thực NodeJS với Firebase

Nói tóm lại:

khách hàng (trình duyệt) < ----> NodeJs (căn cứ hỏa lực-admin) < ----> căn cứ hỏa lực

Tôi tạo ra khách hàng căn cứ hỏa lực trong NodeJS, sau đó tôi sử dụng phương pháp đăng nhập:

var firebaseClient = require('firebase'); 
firebaseClient.initializeApp(config) 
firebaseClient.auth().signInWithEmailAndPassword(req.body.email, req.body.password).catch(function(error){ 
    console.log(error); 
}) 

và sau đó tôi vạch ra lộ trình để kiểm tra người dùng xác thực:

app.get('/check',function(req,res){ 
    var user = firebaseClient.auth().currentUser 
    console.log(user) 
}) 

Phương pháp này chỉ cho phép tôi giữ 1 người dùng đã đăng nhập trước đó.

Tôi muốn sử dụng căn cứ hỏa lực-admin, nhưng tôi không biết làm thế nào để giữ cho phiên và xác thực người dùng

+0

Xem 'hộ chiếu' như một cách để quản lý phiên. Tôi chắc chắn có một gói để quản lý xác thực Firebase bằng cách sử dụng firebase đã được tạo cho bạn, chẳng hạn như https://www.npmjs.com/package/passport-firebase-auth – BenShelton

+0

Tôi đã sử dụng lửa góc. Bạn có thể trực tiếp giao tiếp với khách hàng của bạn (một trình duyệt) với firebase. Tôi không tìm thấy giải pháp cho vấn đề được mô tả. –

Trả lời

5

Bạn có thể xác thực khách hàng trên các thiết bị của mình/trình duyệt bằng cách sử dụng SDK khách hàng, và họ nhận được chúng để gửi mã thông báo ID tới dịch vụ phụ trợ được viết bằng firebase-admin (SDK quản trị). SDK quản trị cung cấp các phương thức để xác thực mã thông báo ID do khách hàng gửi: https://firebase.google.com/docs/auth/admin/verify-id-tokens

Các vấn đề liên quan