2012-12-08 29 views
8

Trong ứng dụng đường ray của tôi, tôi đang sử dụng đá quý devise để quản lý người dùng. Tôi đang sử dụng đá quý mobile_fu để phân tách người dùng đến từ những người dùng khác nhau.Cách đăng nhập tự động bằng Thiết bị sau khi đăng ký?

Những gì tôi muốn đạt được ở đây là:

  1. Nếu người dùng mở trang web của tôi từ một thiết bị di động, tôi sẽ trích đọc tiêu đề MSISDN số của nó đã được thực hiện
  2. Nếu con số MSISDN rơi vào một một loạt bài cụ thể sau đó tôi muốn đăng nhập tự động người dùng đó vào trang web của tôi để anh ấy không phải điền vào biểu mẫu sign_in.

Làm thế nào tôi có thể đạt được điều này?

Trả lời

4

Bạn phải:

1) Đăng ký người dùng vào trang web để tìm ra. 2) Đăng nhập người dùng.

Đối với tùy chọn 1, bạn có thể làm điều gì đó như:

user = User.find_by_msisdn(params[:msisdn]) 
if user.nil? 
    user = User.create(field_1: value1, field_2: value2)  
end 

sign_in(user) 

redirect_to after_sign_in_path(user) 

Những điều cần có trong tâm trí, dòng đầu tiên cố gắng tìm cho người sử dụng, trên dòng thứ hai, nếu nó không thể tìm thấy những người sử dụng, nó tạo ra người dùng ngay lập tức, sau đó nó sign_in người dùng, và cuối cùng chuyển hướng người dùng đến nơi ông nên đi sau khi đăng nhập.

+0

Tôi đã thử điều này, nhưng khi được chuyển hướng đến một trang khác, người dùng không đăng nhập được nữa. Ngay sau khi sign_in (người dùng) có dữ liệu trong current_user và user_signed_in? trả về true. Tuy nhiên, user_signed_in? trả về false khi được chuyển đến các trang khác nhau trên trang web. Bất kỳ ý tưởng? – user2974739

+0

user_session trống. Tôi giả định rằng có một cái gì đó để làm với điều đó. Bất kỳ đề xuất nào về cách đặt phiên người dùng? – user2974739

+1

'after_sign_in_path' được đổi tên thành' after_sign_in_path_for'. – artificis

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