6

Tôi có ứng dụng đường ray front-end sử dụng AngularJs và tôi cũng có một phụ trợ api cũng được viết trong Rails (sử dụng đá quý rails-api). Tôi đã triển khai hệ thống đăng nhập cho hệ thống này. Bây giờ tôi muốn thực hiện login with facebook/google. Tôi đã tìm kiếm thông qua internet và cho đến nay tôi tìm thấy this blog. Từ blog này, tôi đã có ý tưởng triển khai google OAuth 2 trong Android với Rails làm phụ trợ. Nhưng trong trường hợp của tôi, tôi muốn thực hiện google OAuth 2 trong ứng dụng front-end của tôi (Rails + Angular) với Rails là backend.Google/Facebook OAuth2 trong Rails Ứng dụng Front-end với rails-api là webservice

Để thực hiện google OAuth 2, ứng dụng Front-end cần phải yêu cầu token đến google oauth2 authorization server và tôi không có ý tưởng về cách thực hiện.

Ngoài ra, có tốt khi sử dụng đường ray để yêu cầu mã thông báo hoặc tôi có thể sử dụng Góc cho phần đó hay không. Thực hành tốt nhất cho mục đích này là gì?

+0

Hãy thử sử dụng 'hello.js' trong giao diện người dùng của bạn rồi xác thực mã thông báo trong chương trình phụ trợ của bạn. –

+0

OK, tôi sẽ xem xét điều đó. Cảm ơn BTW – SujitS

+0

Bạn đang chào đón .... –

Trả lời

2

Trước tiên, bạn cần phải thực hiện các google đăng nhập trong front-end. Here là tài liệu google về triển khai đăng nhập bằng google trong javascript. google sẽ cung cấp cho bạn thông tin trên tiểu sử của người dùng. Sau khi bạn nhận được thông tin, bạn có thể gửi cho bạn dịch vụ. Về phía máy chủ/Backend bạn có thể làm bất cứ điều gì với thông tin này. Đó là về bạn.

Ngoài ra, this tài liệu có thể hữu ích cho trường hợp của bạn.

+0

Cảm ơn @Madan, bạn đã lưu lại ngày của tôi. – SujitS

1

Bạn có thể sử dụng omniauth-google-oauth2 gem

ý tưởng chính là để thực hiện điều này vào Devise.

Giải pháp tốt Bạn có thể tìm thấy this.

Với giải pháp này, không có vấn đề gì nếu Bạn sử dụng giao diện người dùng/phụ trợ. Vì vậy, bạn nên chú ý về các bước tiếp theo:

tài mẫu:

devise :database_authenticatable, ... , :omniauthable 

Devise.rb:

config.omniauth :google_oauth2, ENV['GP_key'], ENV['GP_secret'], 
    { 
        name: 'google', 
        scope: 'plus.login, userinfo.email, userinfo.profile, 
          ... 
          youtubepartner, youtubepartner-channel-audit', 
        prompt: "select_account" 
    } 

Các bước tiếp theo như trong các giải pháp ..

Trong dự án của tôi nó hoàn toàn khả thi với frontend/backend. Vì vậy, nếu bạn thấy khó khăn, tôi sẽ vui mừng làm lời khuyên để giải quyết ...

Cập nhật: cho phiên bản Android của giao diện người dùng. Bạn không nên thực hiện giao diện xác thực/ủy quyền trên Google. Bạn nên làm điều đó ở phía bên phụ trợ. Bạn có thể sử dụng webtools hay cách khác phù hợp cho đi bộ xung quanh DeviseGoogle auth pages ...

+0

Bạn có thể vui lòng giải thích bằng một số ví dụ làm việc hay không. Tôi đã bối rối hơn với điều này. – SujitS

+2

Bạn đã viết: 'Để triển khai google OAuth 2, ứng dụng Front-end cần phải yêu cầu mã thông báo cho máy chủ ủy quyền google oauth2 và tôi không có ý tưởng về cách thực hiện.'--- Theo ý kiến ​​của tôi, nó không tốt bởi vì bạn nên làm auth. quá trình trên phía phụ trợ. Tại sao? Theo mặc định trong RoR, chúng tôi cung cấp cho người dùng auth với Devise. Chúng tôi có thể khám phá xác thực của Devise này để bỏ qua thông qua Google. Vui lòng đọc bài viết http://sourcey.com/rails-4-omniauth-using-devise-with-twitter-facebook-and-linkedin/ để có giải pháp tốt. Trong khả thi. –

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