Tôi đang làm một số thiết kế/gỡ lỗi trong IRB và cần phải đăng nhập một người dùng và sau đó có thể sử dụng current_user trong nỗ lực của tôi.Rails 3 - Làm thế nào để bạn có thể truy cập vào current_user của Devise trong IRB console?
Từ Brian Deterling của answer cho câu hỏi khác, tôi đã có thể đăng nhập thành công và truy cập vào một phản ứng trang với chuỗi này:
>> ApplicationController.allow_forgery_protection = false
>> app.post('/sign_in', {"user"=>{"login"=>"some-login-id", "password"=>"some-password"}})
>> app.get '/some_other_path_that_only_works_if_logged_in'
>> pp app.response.body
LƯU Ý:. Nếu bạn nhận được một phản ứng 200 bạn chưa đăng nhập Bạn cần chuyển hướng 302 để cho biết thông tin đăng nhập thành công. Xem câu trả lời của Tim Santeford.
tôi đã có thể nhận được thông tin phiên:
1.9.3-p125 :009 > app.session
=> {"_csrf_token"=>"1yAn0jI4VWzUH84PNTH0lVhjpY98e9echQGS4=", "session_id"=>"89984667d30d0fec71f2a5cbb9017e24"}
Tôi đã thử tất cả mọi thứ tôi có thể nghĩ ra để cố gắng để có được current_user
qua app
và app.session
, nhưng không có may mắn. Làm thế nào tôi có thể nhận được current_user
?
Tôi đã thử nó và nó thực sự hoạt động. – Pierre
Tôi đã thử nó và current_user là không. Khi tôi làm thủ tục đăng nhập được mô tả trong câu hỏi, tôi nhận được phản hồi 200 và app.session trả về csrf_token, vì vậy tôi biết tôi đã đăng nhập OK. app.controller đáp ứng với các trang và các trang dữ liệu. Nhưng app.controller.current_user trả về nil. Tôi đang sử dụng Devise - phải không? –
Có vẻ như một số vấn đề gán hàng loạt trên app.post đã khiến thông tin đăng nhập của tôi không thành công (phản hồi 200 không phải là bài đăng thành công trong trường hợp này - rất khó hiểu.) Khi tôi nhận được phản hồi 302, sau đó app.controller.current_user hoạt động. Tôi sẽ không tìm ra vấn đề đăng nhập mà không có câu trả lời của Tim Santeford. –