2014-05-08 17 views
9

Tôi có một ứng dụng di động đang làm việc với máy chủ phụ trợ, tôi muốn hiểu các phương pháp hay nhất cho sử dụng facebook để đăng nhập (tạo một tài khoản) và sau đó để duy trì toàn bộ hệ thống đồng bộ.Cách đăng nhập facebook cho ứng dụng di động phù hợp (với máy chủ node.js/passport.js)

Dưới đây là những gì tôi hiểu cho đến thời điểm này: - Ứng dụng dành cho thiết bị di động có thể đăng nhập trên thiết bị và nhận access_token - Mã thông báo truy cập có thể được chuyển đến máy chủ. Tôi đã làm một bằng chứng về khái niệm sử dụng hộ chiếu-facebook-token nối với một số api.myhost.com/auth/facebook tuyến đường, và có vẻ như tôi có thể xác thực người dùng và lấy dữ liệu FB của mình. Do đó tôi có thể kết hợp anh ta với người dùng hiện tại trong cơ sở dữ liệu của tôi hoặc tạo một bản ghi mới.

Điều tôi không hiểu: 1) Tôi có phải sử dụng https để chuyển mã thông báo FB tới máy chủ của mình không?

2) Tôi phải làm gì cho các yêu cầu khác được cho là đã được xác thực. Tôi không nghĩ đến FB cho mọi yêu cầu là một lựa chọn. Một tùy chọn mà bạn nghĩ đến là tạo một mã thông báo truy cập khác (của riêng tôi) và trả về nó như là kết quả của xác thực FB.

Cách đơn giản nhất để thực hiện việc này là sử dụng phiên làm việc hộ chiếu-facebook-mã thông báo (để ID phiên cookie có thể được tuần tự hóa và không được tuần tự hóa thành ID người dùng). Nhưng điều đó có nghĩa là tôi cần duy trì một số lưu trữ KV cho các phiên. Một cách khác sẽ tạo mã thông báo ngẫu nhiên của riêng tôi cho người dùng đó, trả lại cùng với ID người dùng khi đăng nhập thành công, lưu trữ nó trong hồ sơ người dùng và có mỗi cuộc gọi API từ máy khách cung cấp cặp id/mã thông báo này và xác thực lại chúng mỗi lần thủ công mà không cần dựa vào hộ chiếu. Hoặc sau đó có thể dựa vào chiến lược hộ chiếu địa phương?

Cái nào tốt hơn? Ưu/khuyết điểm của mỗi cái là gì?

2) Nếu tôi dự định sử dụng mã thông báo FB để đăng lên FB và thực hiện phân tích biểu đồ (bạn bè, v.v.), tôi đang lập kế hoạch lưu trữ mã thông báo trên máy chủ. Tôi cần phải làm mới bao lâu một lần? Mỗi khi ứng dụng bắt đầu và làm mới mã thông báo trên máy khách, tôi có nên xác thực lại với máy chủ của mình bằng mã thông báo FB mới không? Điều gì về làm mới thẻ người dùng FB bằng các cuộc gọi từ máy chủ đến máy chủ? Tôi có nên làm điều đó nếu tôi muốn duy trì quyền truy cập vào dữ liệu FB của người dùng, nhưng người dùng đã ngừng sử dụng hoặc sử dụng nó quá thường xuyên?

Có nơi nào có sách dạy nấu ăn của một chương trình làm việc hoạt động tốt không?

Cảm ơn!

+0

Bạn đã bao giờ tìm thấy bất kỳ điều gì hữu ích ở đây? – SJoshi

Trả lời

0

Facebook thẻ an ninh

Các dấu hiệu mà bạn đã tạo trên máy khách ứng dụng di động của bạn là dành cho ứng dụng Facebook mà bạn đã cung cấp cho các ID để trong xác thực. Tôi sẽ luôn sử dụng HTTPS khi giao tiếp mã thông báo qua Internet hoặc bất kỳ thông tin dễ bay hơi nào khác.

Facebook thẻ hết hạn & làm mới

Khi bạn thực hiện xác thực trong ứng dụng di động của bạn, bạn sẽ thường xuyên nhận được thời gian hết hạn của thẻ trong việc ứng phó với các token. Hết hạn mã thông báo được giải thích trong số Facebook API.

Ứng dụng dành cho thiết bị di động gốc sử dụng SDK của Facebook sẽ nhận được mã thông báo truy cập lâu dài, tốt trong khoảng 60 ngày.Các mã thông báo này sẽ được làm mới một lần mỗi ngày khi người dùng ứng dụng của bạn thực hiện yêu cầu tới các máy chủ của Facebook. Nếu không có yêu cầu nào được thực hiện, mã thông báo sẽ hết hạn sau khoảng 60 ngày và người đó sẽ phải thực hiện lại luồng đăng nhập để nhận mã thông báo mới.

Về làm mới token:

Ngay cả những thẻ truy cập tồn tại lâu dài cuối cùng sẽ hết hạn. Tại bất kỳ thời điểm nào, bạn có thể tạo mã thông báo tồn tại lâu dài bằng cách gửi người đó trở lại luồng đăng nhập được ứng dụng web của bạn sử dụng - lưu ý rằng người đó sẽ không thực sự cần đăng nhập lại, họ đã ủy quyền ứng dụng của bạn, vì vậy họ sẽ ngay lập tức chuyển hướng lại ứng dụng của bạn từ luồng đăng nhập bằng mã thông báo được làm mới - cách điều này xuất hiện cho người sẽ thay đổi dựa trên loại luồng đăng nhập bạn đang sử dụng, ví dụ: nếu bạn đang sử dụng SDK JavaScript, điều này sẽ diễn ra nền, nếu bạn đang sử dụng luồng phía máy chủ, trình duyệt sẽ nhanh chóng chuyển hướng đến Hộp thoại đăng nhập và sau đó tự động quay lại ứng dụng của bạn một cách tự động và ngay lập tức.

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