22

Tôi đã nghiên cứu cách tiếp cận tốt nhất để thực hiện xác thực facebook, twitter và email/mật khẩu cho ứng dụng thuần túy JSON rails 4.1 sử dụng rails-api. Các ứng dụng đường ray có NO lượt xem và chỉ phục vụ JSON giữa các ứng dụng android và iphone lai ứng dụng bản địa (Họ sử dụng khung ionic là một ứng dụng góc được biên dịch thành một ứng dụng gốc). Trước đây, tôi đã thực hiện xác thực cơ bản trong đó auth_token được chuyển trong tiêu đề từ ứng dụng khách đến API Rails mà không gặp sự cố khi sử dụng đường ray được tạo bằng auth, nhưng kể từ lần này tôi cần tích hợp với Facebook và Twitter I đang tìm kiếm một giải pháp sử dụng oauth.Rails JSON API xác thực oauth

Tôi đã xem xét kỹ lưỡng, nhưng dường như nó không hoạt động độc đáo với api JSON thuần túy. Tương tự, omniauth dường như dựa vào lượt xem & chuyển hướng. Ngoài ra, opro và doorkeeper có vẻ tuyệt vời vì là nhà cung cấp oauth của riêng bạn nhưng tôi không thấy cách họ xử lý các bên thứ ba như facebook và twitter.

Mọi người triển khai xác thực oauth đa nhà cung cấp như thế nào cho ứng dụng JSON API thuần túy trong đường ray?

+2

Tôi ước tôi có thể cung cấp cho bạn nhiều hơn 1 upvote :). Đây là * chính xác * vấn đề tôi cũng có. Mọi người đang nói về xác thực mã thông báo, nhưng không ai đang nói về cách thực hiện xác thực của bên thứ ba. Giải pháp hiện tại của tôi là khách hàng chuyển hướng đến API của tôi, tôi chăm sóc xác thực với OmniAuth, lưu trữ mã thông báo xác thực trong cookie và sau đó chuyển hướng lại cho khách hàng. Nhưng điều đó hoạt động bởi vì khách hàng duy nhất tôi có là một trình duyệt, và tôi nhận ra rằng tôi muốn nó chung chung hơn. Xin lỗi, đã không thực sự giúp đỡ :) –

+0

@ John hey, làm thế nào bạn đã kết thúc thực hiện xác thực cuối cùng? –

+1

@PaulFitzgerald mở nguồn https://github.com/johnkelly/heavenly. Về cơ bản, facebook auth trở thành auth token sau khi xác thực. – John

Trả lời

3

Tôi đã tạo một JSON Api rất giống sử dụng growl. Việc xác thực đã sử dụng các lớp dịch vụ tùy chỉnh để xác thực với google, facebook, twitter. Các lớp dịch vụ cho facebook cần một facebook tokan và sử dụng Koala gem để lấy thông tin từ facebook và để điền vào danh tính xã hội. Nếu cần thiết nó tạo ra một người dùng mới hoặc nó liên kết danh tính xã hội với một người dùng hiện có với cùng một UID hoặc email.

Bằng cách này, chúng tôi đã kiểm soát hạt mịn tùy chỉnh trong toàn bộ quá trình xác thực.

Chúng tôi cũng sử dụng swagger để ghi lại API và để cung cấp dễ dàng kiểm tra lối vào.

4

Nhìn vào this blog. Ở đây tác giả đã giải thích để thực hiện google oauth2 trong android với đường dẫn phụ trợ với một số sơ đồ đẹp. Hy vọng điều này sẽ giúp.

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