2010-04-26 27 views

Trả lời

16

CẬP NHẬT - Tháng Sáu 2011 - Tôi đã được sử dụng omniauth gem thời gian gần đây và tôi nghĩ rằng đó là một giải pháp tốt hơn so với sử dụng các viên ngọc gợi ý trong việc này câu trả lời. Nó hoạt động tốt với Devise và sẽ cung cấp cho bạn mọi thứ bạn cần trong một gem. Tôi tạo ra một công cụ kết hợp Devise và Omniauth và thêm một bộ điều khiển để xử lý các cuộc gọi lại. Tôi có khá một vài thay đổi kế hoạch cho đá quý và ngay bây giờ tôi không coi đó là một plugin ổn định, nhưng bạn có thể sử dụng lại một số mã trong đá quý: https://github.com/charlotte-ruby/devise_omniauth_engine/blob/master/app/controllers/users/omniauth_callbacks_controller.rb


thời gian gần đây tôi nhận này làm việc trên Rails 3 (với một số vấn đề khi sử dụng OpenID). Tôi không có một ví dụ làm việc hoàn chỉnh mà bạn có thể xem trên github, nhưng đây là những gì tôi đang sử dụng ... tất cả đều có ví dụ trong các tập tin readme.

Facebook - fbgraph. Không giống như Facebooker, nó sử dụng Facebook API gần đây nhất. Và nguồn là rất dễ hiểu nếu bạn cảm thấy thích xem xét các hoạt động bên trong. Nhìn vào ví dụ xác thực trong readme. Chết một cách đơn giản.

Twitter - twitter_oauth Một lần nữa, hãy kiểm tra ví dụ xác thực readme. Điều này khá dễ thiết lập.

OpenID - rails/open_id_authentication sử dụng đá quý ruby-openid, nhưng bản thân repo này không phải là đá quý, vì vậy bạn sẽ phải thả mã vào ứng dụng hoặc đưa vào thư mục plugin của mình. Hãy xem ví dụ của họ trong readme và cũng kiểm tra nguồn chặt chẽ để hiểu những gì đang xảy ra (chỉ 130 dòng mã của nó). Tôi đã sửa đổi một chút để làm việc với plugin xác thực của mình, nhưng tôi gặp phải một số vấn đề khiến nó hoạt động với cả Đăng ký đơn giản và Trao đổi thuộc tính cùng một lúc ... nhưng bạn có thể làm cho nó hoạt động ra khỏi hộp nếu ví dụ về rdoc phù hợp với ứng dụng của bạn.

Hãy cho tôi biết nếu bạn có bất kỳ câu hỏi cụ thể nào về những điều này. Tôi gặp phải một vài vấn đề tôi đã có thể giải quyết với tất cả 3 khi tôi đã thiết lập điều này.

+0

Cảm ơn bạn đã trả lời. Bạn đang sử dụng bất kỳ plugin xác thực chung nào (như authlogic, devise, restful_authentication) với chúng hay bạn đã xây dựng giải pháp xác thực chuẩn của riêng mình chưa? –

+0

Tôi vừa tạo plugin auth đơn giản của riêng mình. Tôi không thực sự cần tất cả các tính năng tạo ra và cung cấp authlogic. Tôi đã xem xét mã nguồn của cả hai và chọn ra một số thứ tôi thích sử dụng trong vai trò của riêng mình và giải pháp xác thực. Trong khi tôi không thích sáng tạo lại bánh xe, tôi luôn luôn tìm hiểu thêm khi tôi tự viết mã (trong khi lấy cảm hứng từ các giải pháp khác). Thêm vào đó, nếu tôi cần phải mở rộng nó, tôi không phải khai thác thông qua nguồn của người khác một tuần để tìm ra nó. Tôi đang làm việc để biến các công cụ FB/Twitter/OpenID thành một công cụ đường ray. Tôi sẽ đăng nó ở đây nếu tôi nhận được nó trong vài ngày tới. – johnmcaliley

+0

Điều đó sẽ rất tuyệt vời, cảm ơn bạn :) –

4

Tôi đã dành khoảng một tuần cố gắng (không thành công) để có được open_id_authentication làm việc. Tôi đã cố gắng sử dụng Authlogic và tất cả các đá quý và plugin liên quan. Tôi không thể làm mọi thứ theo cách tôi muốn. (Xác thực sẽ chỉ hoạt động với: action (/: id) route được kích hoạt, nhưng khi nó được kích hoạt, các controller khác của tôi sẽ không hoạt động vì cái gì đó trong plugin đã loại bỏ các tham số băm - rất bực bội).

Tuy nhiên, cuối cùng tôi đã có thể làm cho OpenID hoạt động bằng Devise (http://github.com/plataformatec/devise) và devise_openid_authenticatable (http://github.com/nbudin/devise_openid_authenticatable). Tôi đã có thể theo dõi readme trên cả hai trang để mọi thứ hoạt động chính xác như tôi muốn. Đơn giản. Tiến thẳng về phía trước. Và Rails 3.0 tương thích.

+0

Vâng, tôi không thể nhận được open_id_authentication để hoạt động. Bây giờ hãy nhìn vào. – iJK

0

Cách dễ nhất tôi đã tìm thấy để thực hiện việc này là sử dụng dịch vụ RPX NOW.

Bạn có thể tìm thấy ví dụ làm việc đầy đủ về việc sử dụng nó với Rails3 và đá quý RPX NOW tại github.

1

Nếu bạn định sử dụng Facebooker 2, bạn sẽ phải nâng cấp khung Rails lên 3.0. Ayeah Games vừa trải qua quá trình cho trò chơi FanSwarm (trên Facebook). Đây không phải là nhiệm vụ dễ dàng, nhưng bài đăng trên blog có thể cung cấp cho bạn một số thông tin chi tiết.

http://www.ayeahgames.com/blog/bid/55099/The-Horror-Upgrading-to-Rails-3

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