2012-04-25 45 views
5

Tôi đang xây dựng một Website (PHP), API (PHP) và một ứng dụng iPhone gốc. Tôi muốn người dùng đăng nhập bằng tài khoản Facebook của họ để họ có thể đăng bài đánh giá/tải lên ảnh qua ứng dụng Trang web hoặc iPhone đến máy chủ/cơ sở dữ liệu của chúng tôi. Điều này cũng sẽ giúp tôi tiết kiệm thời gian để tạo ra một hệ thống đăng ký người dùng hoàn chỉnh.Trang web, API và Ứng dụng iPhone cho phép người dùng đăng nhập qua Facebook

Tôi đang cố gắng tìm ra cách tạo kiến ​​trúc thống nhất cho loại giải pháp này. Tôi đang suy nghĩ về những điều sau đây:

đăng ký:

  • Tạo một bảng cơ sở dữ liệu chứa người dùng của tôi (bảng sẽ có những lĩnh vực: id, facebook_uid, firstname, lastname)
  • iPhone App kịch bản đăng nhập: người dùng đăng nhập qua Facebook; nhấn vào cho phép cấp quyền cho ứng dụng của tôi; trở về ứng dụng với access_token (được lưu trữ trên điện thoại của anh ta). Sau đó thực hiện cuộc gọi đến API của riêng tôi để đăng ký người dùng (nếu chưa đăng ký trong cơ sở dữ liệu) với các thông tin sau: facebook_uid, firstname và lastname.
  • Kịch bản đăng nhập trang web: đăng nhập người dùng qua Facebook; chuyển hướng đến url trở lại cấu hình của tôi và đăng ký người sử dụng (nếu chưa có trong cơ sở dữ liệu) với các giá trị facebook_uid, firstname và lastname

Đăng một đánh giá sản phẩm

  • Iphone App: Thực hiện cuộc gọi vào API của tôi với thông số đầu vào sau: review_text, facebook access_token. API của tôi sau đó sẽ thực hiện phía máy chủ cuộc gọi API tới facebook để nhận facebook_uid. Khi tôi đã truy xuất facebook_uid tôi chèn vào cơ sở dữ liệu hồ sơ đánh giá cho người dùng facebook này. (Thay vì gửi access_token Facecbook, tôi có thể gửi trực tiếp giá trị facebook_uid cho API của mình. Nhưng tôi nghĩ điều này có thể kém an toàn hơn, vì ai đó có thể chèn đánh giá về hành vi của người dùng khác nếu họ biết facebook_uid của họ)

  • Trang web: Với sự trợ giúp của thư viện Facebook Connect PHP, phiên đăng nhập FB có sẵn để tôi có thể chèn trực tiếp phía máy chủ bằng cách đọc các phiên facebook_uid.

Đây có phải là cách chính xác và an toàn khi sử dụng Facebook làm đăng nhập cho nền tảng của riêng bạn không? Hoặc có bất kỳ mô-đun/thư viện PHP nào khác mà tôi có thể sử dụng để đơn giản hóa điều này không?

Trả lời

0

Facebook có một api hiện ở đây http://developers.facebook.com/docs/guides/web/

Trang cũng chứa một hướng dẫn về làm thế nào để thực hiện điều này

Đối với iPhone đăng nhập facebook cụ thể xin vui lòng xem tại đây https://developers.facebook.com/docs/mobile/ios/build/#implementsso

+0

Tôi biết về API Facebook và thư viện (mà tôi đang sử dụng trong ứng dụng PHP và ứng dụng iPhone). Điều ở đây là tôi đang xây dựng API của riêng mình để trưng ra các thực thể/sản phẩm của riêng tôi được lưu trữ trong cơ sở dữ liệu của tôi. API của riêng tôi cung cấp chức năng như viết bài đánh giá sản phẩm hoặc tải ảnh sản phẩm lên máy chủ của chúng tôi. Vì vậy, tôi cần phải xác thực người dùng facebook. –

+0

Ồ tôi hiểu rồi. Đó không phải là một vấn đề. Api đăng nhập sẽ đăng nhập người dùng. Từ đó bạn sẽ có thể chuyển tên người dùng, v.v. thành api của bạn. Facebook api đề cập đến việc đăng nhập. Đó là câu hỏi của bạn đúng không? – Jamesp1989

+0

Vâng, do đó, điều chính là đây là một cách an toàn với nó; chuyển facebook ACCESS_TOKEN sang API của riêng tôi qua HTTPS để thêm người dùng mới vào bảng cơ sở dữ liệu người dùng của tôi. Và khi đăng bài đánh giá hoặc tải lên ảnh qua API của riêng tôi, hãy chuyển ACCESS_TOKEN một lần nữa để API của riêng tôi có thể tự giải quyết vấn đề đó là facebook_uid. –

0

Tôi đang ở một tương tự kịch bản. Giữ access_token trên điện thoại có vẻ như là một ý tưởng hay, sau đó chuyển qua API của bạn để xác minh người dùng trên cơ sở dữ liệu của riêng bạn có vẻ như là một ý tưởng hay. Bạn có thể an toàn để mã hóa access_token và lưu trữ nó trong cơ sở dữ liệu của riêng bạn và kiểm tra nó như trái ngược với việc liên tục ping API Facebook tức là không.:

  1. Đăng nhập qua Facebook, tải Facebook UID và access_token.
  2. Lưu trữ cả UID và/hoặc access_token trong cơ sở dữ liệu của bạn được mã hóa qua md5/sha.
  3. Mỗi khi API của bạn thực hiện cuộc gọi, hãy vượt qua access_token và kiểm tra nó với mật khẩu được lưu trữ để xác minh cuộc gọi?
Các vấn đề liên quan