2011-10-20 36 views
17

Tôi đang sử dụng facebook SSO trong ứng dụng iOS của mình và hoạt động không sao. Bây giờ tôi muốn sử dụng thông tin đó - người dùng được xác minh chống lại facebook bằng uid - trên máy chủ phụ trợ của tôi. Nhưng làm thế nào tôi có thể - an toàn - chuyển thông tin này đến máy chủ?sử dụng ủy quyền ứng dụng khách trên Facebook iOS vào máy chủ

Tôi đoán là tôi cần gửi uid và có lẽ authToken tôi nhận được từ facebook đến máy chủ của tôi? Ai đó có thể phác thảo một cách tiếp cận chung cho điều đó?

Mặc dù nó không thực sự quan trọng đối với câu hỏi của tôi, máy chủ của tôi đang chạy đường ray và đưa ra để xác thực. Tôi cũng có đăng nhập facebook làm việc ở đó một cách riêng biệt, nhưng tôi muốn sử dụng xác thực đã được thực hiện từ máy khách trên máy chủ. Khó hiểu ...

Trả lời

35

Tôi đã xem qua this bài đăng đã giúp tôi hiểu được vấn đề và giải pháp.

Sửa lỗi nếu bạn thấy bất kỳ sự cố nào.

Ý tưởng là chuyển mã thông báo xác thực đến ứng dụng đường ray. Mã thông báo xác thực chỉ hoạt động nếu cả hai ứng dụng sử dụng cùng một bí mật ứng dụng.

Vì vậy, các dòng chảy là như thế này:

  1. iOS xác thực. Lấy mã thông báo xác thực Facebook của người dùng và gửi đến ứng dụng đường ray.
  2. Ứng dụng Rails có mã thông báo xác thực, đăng nó lên graph.facebook.com/?auth_token=XXX. Phản hồi phải là đối tượng json của người dùng.
  3. Nhận phản hồi đối tượng người dùng để tìm UID và đối sánh nó với người dùng trong cơ sở dữ liệu của bạn. Nếu UID không tồn tại, hãy tạo người dùng mới và đặt UID mới.
+0

Cảm ơn bài đăng đó! Tự hỏi tại sao tôi không tự nó vì nó về cơ bản chính xác trả lời câu hỏi của tôi. – Dennis

+6

Về cơ bản là Stack Overflow. – jgthms

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