2012-11-06 37 views
5

tôi đã thực hiện việc chứng thực lập mưu Omniauth trong ứng dụng Rails của tôi sử dụng thành công trong việc hướng dẫn sau đây của git OmniAuth: OverviewLàm cách nào để thực hiện nhiều xác thực bằng Devise Omniauth + (Facebook, Twitter, Google)?

Nhưng nó sẽ không hỗ trợ nhiều xác thực, có thể là tất cả các bạn biết rằng, và phải đối mặt với vấn đề tương tự trước đó, nhưng nếu bạn đã chỉnh sửa thành công vấn đề tương tự, hãy cho tôi biết giải pháp.

Đây là kịch bản mà tôi cần hoàn thành khi sử dụng Omniauth + Devise.

chúng tôi có một người dùng có tên là John và anh ấy đã có tài khoản trong cả Google & Facebook với cùng một id email "[email protected]".

Vì vậy, lần đầu tiên John cố gắng đăng nhập bằng tài khoản Google của mình, john đã đăng nhập thành công trong thời gian này.

nhưng lần thứ hai john cố gắng đăng nhập bằng tài khoản facebook của mình, lần này ứng dụng của chúng tôi chuyển hướng john thành đăng ký, không cần đăng nhập bằng tài khoản facebook của anh ấy.

Tôi biết tại sao điều này là hapepnig bởi vì phát minh sẽ xác nhận tính duy nhất của email. Nhưng tôi rất tò mò muốn biết rằng, có cách nào để tinh chỉnh vấn đề này để chúng tôi có thể đạt được nhiều xác thực không. Stack-Overflow đã thực hiện tương tự rất độc đáo.

Hãy giúp tôi tìm ra giải pháp.

Cảm ơn bạn ..

+0

này đã được trả lời thành công ở đây: http: //stackoverflow.com/questions/21249749/rails-4-devise-omniauth-with-multiple-providers – charlysisto

Trả lời

4

thử loại này, trong tập tin devise.rb bạn bình luận dòng này hoặc thay đổi email và sử dụng sự khác biệt cho điều đó và sau đó thử

# to authenticate or find a user. Default is :email. 
    config.case_insensitive_keys = [ :email ] 
    # modifying a user and when used to authenticate or find a user. Default is :email. 
    config.strip_whitespace_keys = [ :email ] 
+0

là cách duy nhất để thực hiện nhiều xác thực.? – Sreehari

+0

một cách khác là có nhưng bạn phải làm mã hóa cho điều đó và viết điều kiện –

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