Tôi đang xây dựng một ứng dụng Phonegap có các nút bấm ở phía máy chủ. Tôi muốn thực hiện đăng nhập bằng cách sử dụng chiến lược hộ chiếu-facebook nhưng callbacks của họ chỉ định hai tuyến đường,/successcallback và/failurecallback. Có một ứng dụng trang duy nhất, điều này làm cho nó rất khó hiểu để người dùng chuyển hướng đến trang và như vậy.Cách sử dụng đăng nhập Passport-Facebook mà không cần chuyển hướng?
Tôi không muốn phân phối các tệp tĩnh (index.html, login.html) từ máy chủ mà có chúng trên máy khách và yêu cầu khách hàng thực hiện cuộc gọi ajax. Cho đến nay, tôi có thể thực hiện/auth/facebook gọi như là một yêu cầu AJAX nhưng tôi không thể nhận được bất kỳ phản ứng nào trên cùng một yêu cầu vì chiến lược đăng nhập yêu cầu người dùng phải được chuyển hướng. Tôi muốn gửi một user_id hoặc tên lại cho người dùng khi đăng nhập thành công hoặc hiển thị cho anh ta biểu mẫu đăng nhập (cũng nằm trong thư mục www trong phonegap) về lỗi. Nhưng lỗi chuyển hướng và CORS đang ngăn cản tôi thực hiện việc này. Có cách nào tôi có thể thực hiện điều này? Tôi đã tìm kiếm điều này từ một vài tuần nay, nhưng không thành công. Tôi thực sự đánh giá cao sự giúp đỡ của bạn!
PS: Tôi muốn tránh phải gửi tất cả nội dung html và tĩnh từ máy chủ nút.
EDIT: Thêm mã đăng nhập để hiểu rõ hơn:
app.get('/userpage', utility.isLoggedIn, function(req, res)
{
res.send('User:'+req.user);
});
app.get('/', utility.isLoggedIn, function(req, res)
{
res.redirect('/userpage');
});
app.get('/auth/facebook', passport.authenticate('facebook'));
app.get('/auth/facebook/callback',passport.authenticate('facebook',
{
successRedirect : '/',
failureRedirect : '/login'
}));
app.get('/logout', function(req, res)
{
req.logout();
res.redirect('/login');
});
utility.isLoggedIn:
function isLoggedIn(req, res, next)
{
if (req.isAuthenticated())
return next();
res.redirect('/login');
}
Giải quyết sự cố này? Im quan tâm đến một cách tiếp cận tương tự ... –
Người dùng sẽ phê duyệt các quyền mà ứng dụng Facebook của bạn yêu cầu thông qua yêu cầu ajax như thế nào? Điều gì sẽ xảy ra nếu người dùng chưa đăng nhập vào Facebook, họ sẽ đăng nhập như thế nào thông qua yêu cầu ajax? Câu trả lời cho những câu hỏi này tất nhiên là: họ không thể. Và đây là lý do tại sao bạn sẽ không bao giờ có thể xác thực người dùng thông qua bất kỳ nhà cung cấp OAuth nào bằng ajax. – idbehold