Tôi đang phát triển một ứng dụng MEAN. Tôi đang sử dụng hộ chiếu để xác thực chiến lược địa phương, facebook và google.cách xử lý gọi lại hộ chiếu facebook trong ứng dụng khách góc?
Tôi đang sử dụng ứng dụng khách góc cạnh. Tất cả các định tuyến được xử lý tại khách hàng. Tôi chỉ tiêu thụ dữ liệu máy chủ apis.
Khi sử dụng chiến lược hộ chiếu-facebook, tôi đang sử dụng mã bên dưới tại máy chủ nút theo tài liệu hộ chiếu.
app.get('/auth/facebook',passport.authenticate('facebook-auth', { scope : ['email'] }));
app.get('/auth/facebook/callback',passport.authenticate('facebook-auth', {
successRedirect : '/home',
failureRedirect : '/login',
scope:['email']
}));
Vấn đề tôi đang phải đối mặt là khi người dùng nhấp chuột vào "Đăng nhập qua tài khoản Facebook" nút
<a href="/auth/facebook" class="btn"><i class="fa fa-facebook"></i> Sign in using Facebook</a>
khách hàng sẽ truy cập vào "/ auth/facebook" tuyến đường mà cuối cùng sẽ chuyển hướng người dùng đến trang facebook để phê chuẩn thông tin đăng nhập của người dùng.
Sau khi xác thực thành công, người dùng sẽ được chuyển hướng đến tuyến đường "/ nhà" như được xác định trong giá trị "successRedirect".
Bây giờ, tôi muốn sử dụng chức năng gọi lại tùy chỉnh thay vì xác định chuyển hướng để thành công hay thất bại. Nó sẽ giống như dưới đây:
vấn đềapp.get('/auth/facebook/callback',passport.authenticate('facebook-auth', function(err,user,info){
if(err){
throw err;
}
else if(user === 'userexists'){
res.json({
'state':false,
'message':'User with this e-mail already exists'
});
}
else{
req.logIn(user,function(loginErr){
if(loginErr){
throw loginErr;
}
res.json({
'state':true,
'message':'You logged in successfully!'
});
});
}
}));
Gốc tôi đang phải đối mặt ở đây, tôi không thể sử dụng trên gọi lại tùy chỉnh như khách hàng không gọi "auth/facebook/callback" lộ trình, nó được gọi bằng facebook. Vì vậy, không có trình xử lý thành công nào đang chờ để bắt được phản hồi của cuộc gọi lại ở phía máy khách !!
Tôi muốn một số cách để nhận phản hồi ở dạng json ở máy khách để loại bỏ chuyển hướng phía máy chủ và cũng có cách để truyền thông điệp và tên người dùng cho khách hàng sau khi xác thực thành công bằng facebook.
Tôi sắp từ bỏ hộ chiếu. Hy vọng cho bất kỳ giải pháp có thể trước khi loại bỏ rất nhiều mã!
Cảm ơn
Cảm ơn rất nhiều câu trả lời rõ ràng! – Designeer
@Designeer bạn được chào đón. Đăng lại trong trường hợp bạn tìm thấy nhiều vấn đề hơn: D – onel0p3z
@ onel0p3z Tôi đang làm điều tương tự trong reactjs thay vì góc cạnh. Máy chủ của tôi ở trên Node và tôi đang sử dụng Express. Tôi đã triển khai thành công hộ chiếu-facebook ở phía máy chủ của tôi. Bây giờ tôi đang gọi '/ auth/facebook' từ phản ứng thông qua thẻ neo. Nhưng tôi không có ý tưởng làm thế nào để lấy lại phản ứng cho rằng trong phản ứng, vì nó được xử lý bởi máy chủ duy nhất và tôi không muốn xử lý nó thông qua response.redirect trên máy chủ .. Bạn có thể vui lòng đề nghị làm thế nào để xử lý kịch bản này? – Vijay