2014-10-06 28 views
10

FireBase xuất hiện để hỗ trợ xác thực dựa trên OAuth từ Facebook, Twitter, Google, GitHub. Còn nhà cung cấp OAuth khác thì sao? Sẽ rất tuyệt nếu có tùy chọn "OAuth" chung, ngoài việc chỉ định Khóa API và Bí mật bạn đã chỉ định bất kỳ thông tin nào khác cần thiết.Xác thực OAuth tùy chỉnh Firebase

Có thể sử dụng mô-đun xác thực dựa trên OAuth hiện tại của FireBase mà không cần tạo mô-đun xác thực OAuth tùy chỉnh của riêng mình cho FireBase, bằng cách bỏ qua một trong các cơ chế "OAuth" được tích hợp? Cái nào là chung nhất, nếu vậy?

+2

Không có điều gì giống như nhà cung cấp OAuth chung. Tất cả họ đều làm việc hơi khác một chút. Sử dụng mã thông báo xác thực tùy chỉnh là cách để đến đây. Chúng đơn giản hơn nhiều so với bất kỳ hack hacks nào để thử và có được các nhà cung cấp được xây dựng để hoạt động như một nhà cung cấp khác. Các công cụ như [firebase-passport-login] (https://github.com/Rigidflame/firebase-passport-login) có thể làm cho điều này trở nên dễ dàng hơn. – Kato

Trả lời

1

Firebase có 5 xác thực dựa trên OAuth, Facebook, Twitter, Google, GitHub và Xác thực tùy chỉnh ngay bây giờ. Sử dụng Firebase xác thực tùy chỉnh cho phép bạn kiểm soát hoàn toàn việc xác thực người dùng bằng cách cho phép bạn xác thực bằng cách sử dụng Thẻ Web JSON an toàn (JWTs). Vì vậy, bạn có thể chỉ định các tùy chọn bổ sung cho Khóa API và Bí mật. Ví dụ:

var logInAndThen = function(options) { 
var secret = '********************'; 
var tokenGenerator = new FirebaseTokenGenerator(secret); 
var token = tokenGenerator.createToken(credentials[options.userType || 
'admin' 
}; 
2

Tôi cũng đã vật lộn một lúc với điều này và đây là cách tôi đã thực hiện nó cho dự án của mình. Chạy Node.js máy chủ nhanh mà sẽ có vai trò to:

  1. được req từ ứng dụng front-end của bạn
  2. người dùng chuyển hướng đến trang oauth
  3. trở lại Node.js trong trường hợp thành công/lỗi và cần tính toán số token cho Firebase để đăng nhập thành công người dùng.
  4. res với cookie chứa mã thông báo này và chuyển hướng người dùng quay lại ứng dụng giao diện người dùng để hoàn tất quy trình.

Bạn sẽ phải chạy máy chủ nút trên một vps khác để ứng dụng của bạn hoạt động nhưng có thể bạn sẽ cần ứng dụng đó nếu bạn có ứng dụng lớn hơn cần chạy nội dung riêng tư trên chương trình phụ trợ chứ không phải tất cả mọi thứ trả trước.

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