Tôi đang sử dụng Devise 3.5 với Omniauth trong ứng dụng Rails 4. Tôi đã tạo một tích hợp với Facebook cho phép người dùng kết nối tài khoản Facebook của họ với ứng dụng của tôi. Hiện tại khi người dùng nhấp vào nút kết nối, họ sẽ được gửi đến /user/auth/facebook
và sau đó được chuyển hướng đến url gọi lại mà Omniauth tạo: /user/auth/facebook/callback
. Những gì tôi muốn làm là ghi đè theo cách thủ công url gọi lại này trong một số trường hợp - có nghĩa là tôi không muốn ghi đè nó trong trình khởi tạo - với một địa chỉ đầy đủ đủ điều kiện. Ví dụ: nếu người dùng bắt đầu trên http://www.example.com/
Tôi có thể muốn ghi đè url gọi lại mặc định bằng http://app.example.com/user/auth/facebook/callback
.Ghi đè/bỏ qua địa chỉ mặc định Url mặc định
Ứng dụng của tôi có tên miền phụ động và người dùng sẽ (hầu như) luôn bắt đầu quy trình xác thực trên tên miền phụ. Rất tiếc, có vẻ như Facebook không hỗ trợ các ký tự đại diện trong url chuyển hướng oauth, đó là lý do tại sao tôi muốn khả năng phát hiện xem người dùng có đang ở trên tên miền phụ hay không và điều chỉnh url gọi lại cho một cái gì đó mà tôi đã đưa vào danh sách trắng trên ứng dụng Facebook của mình để ủy quyền quá trình thành công.
Từ nội dung tôi đã đọc, trình trợ giúp url omniauth_authorize_path
chấp nhận các đối số bổ sung được chuyển thành tham số. Tôi đã thử đi qua một con đường gọi lại tùy chỉnh trong như vậy, nhưng không thành công:
user_omniauth_authorize_path(:facebook, callback_path: @custom_callback)
Tôi cũng đã cố gắng thay đổi callback_path
-redirect_url
và redirect_uri
, nhưng không có vẻ làm việc. Khi tôi nhìn vào liên kết được tạo ra, nó thực sự bao gồm gọi lại như một tham số trong url, nhưng khi tôi nhấp vào liên kết, tôi được chuyển hướng trở lại url gọi lại mặc định thay vì url gọi lại tùy chỉnh.
Tôi cũng cần tính năng đó: ( – diogopms