2015-05-30 17 views
7

Tôi đang sử dụng ngăn xếp MeanJS để phát triển một ứng dụng web. Vấn đề tôi gặp phải là quy trình đăng ký thông thường của tôi có một số thông số duy nhất không phổ biến đối với hồ sơ người dùng Oauth. Vì vậy, khi tôi có người dùng truy cập đăng ký bằng facebook, tôi chuyển chúng sang biểu mẫu Đăng ký mới, để họ điền vào các thông số bổ sung và sau đó nhấp vào "đăng ký bằng facebook".Làm cách nào để gửi và xử lý thông số yêu cầu với yêu cầu Oauth?

Các tuyến đường cũng giống như các tuyến đường MeanJS chung tìm thấy ở đây: https://github.com/meanjs/mean/blob/master/app/routes/users.server.routes.js

Cụ thể những dòng này:

app.route('/auth/facebook').get(passport.authenticate('facebook', { 
    scope: ['email'] 
})); 

app.route('/auth/facebook/callback').get(users.oauthCallback('facebook')); 

Những gì tôi muốn làm, là có các thông số phụ thuộc theo yêu cầu đối tượng, để khi quá trình xác thực đạt đến số exports.saveOAuthUserProfile bên trong của: https://github.com/meanjs/mean/blob/master/app/controllers/users/users.authentication.server.controller.js , chức năng này sẽ có thể truy cập các thông số đó và lưu chúng như là một phần của mô hình người dùng.

Tôi đã cố gắng gắn tham số cho các yêu cầu GET và truy cập

req.params.paramId

nhưng điều này sẽ không làm việc, bởi vì bạn không thể đăng ký một yêu cầu param nạp với các api facebook (hoặc ít nhất nó có vẻ là theo cách đó).

Và tôi đã đọc ở nơi khác trên StackOverflow mà bạn có thể tải Trạng thái yêu cầu, nhưng điều đó có vẻ thực sự lạ đối với tôi. Đây là liên kết cho điều đó: Facebook OAuth: custom callback_uri parameters

Vì vậy, mọi hướng dẫn về cách tải dữ liệu bổ sung vào yêu cầu Oauth, để tôi lưu hồ sơ người dùng tôi có thể truy cập và lưu nó, sẽ rất tuyệt.

Xin cảm ơn các bạn.

Trả lời

2

Nó không thực sự rõ ràng với tôi những gì bạn muốn đạt được. Trường "bổ sung" là gì và tại sao bạn không lấy trực tiếp các trường từ hồ sơ của người dùng ?. Khoảng 98% việc triển khai FB Đăng nhập mà tôi đã thấy chỉ sử dụng nút "Đăng nhập bằng Facebook" và nhận dữ liệu của người dùng trong quá trình OAuth và không được người dùng nhập theo cách thủ công.

Với passport-facebook ví dụ, nó có thể là bạn

a) Cấu hình tùy chỉnh phạm vi

b) Làm giàu đối tượng hồ sơ với dữ liệu phạm vi tùy chỉnh của

Đối tượng profile sau đó sẽ tự động chứa các trường được yêu cầu bổ sung và bạn không cần phải tự tinh chỉnh đối tượng yêu cầu.

+0

Mục đích là người dùng chỉ định một số dữ liệu tùy chỉnh không phải là một phần của hệ thống hồ sơ Facebook, nhưng đó là dữ liệu là một phần của đối tượng người dùng của hệ thống này (và yêu cầu đăng ký). Vì vậy, tôi muốn người dùng có thể nhập dữ liệu bổ sung này khi đăng ký, ngay cả với Facebook. – Devnetics

+0

Kết hợp cả hai hồ sơ FB và tùy chỉnh có giá trị trong một đối tượng phiên. – Tobi

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