2012-12-08 2 views
8

내 레일 응용 프로그램에서 나는 사용자를 관리하기 위해 devise 보석을 사용하고 있습니다. 다른 사용자로부터 오는 사용자를 분리하기 위해 mobile_fu 보석을 사용하고 있습니다.등록 후 장치를 사용하여 자동으로 로그인하는 방법은 무엇입니까?

내가 여기 달성하고자하는 것은 : 사용자가 모바일 장치에서 내 사이트를 엽니 다

  1. 경우 그 MSISDN 수가에 해당하는 경우 이미
  2. 수행의 MSISDN 수 읽기 헤더를 추출합니다 특정 시리즈를 누른 다음 해당 사용자가 내 웹 사이트에 자동으로 로그인하여 sign_in 양식을 채울 필요가 없습니다.

어떻게 처리 할 수 ​​있습니까?

답변

4

해야 할 일 :

1) 사용자를 웹 사이트에 등록하십시오. 2) 사용자를 로그인하십시오. 옵션의 경우 1

, 당신은 같은 것을 할 수 있습니다 : 마음에 가지고

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) 

일을 첫 번째 줄이 사용자를 찾을 수없는 경우, 두 번째 줄에, 사용자에 대한 찾으려고 시도합니다, 바로 사용자를 생성 한 다음 사용자에게 로그인하고 마침내 사용자가 로그인 후에 이동해야하는 위치로 사용자를 리디렉션합니다.

+0

나는 이것을 시도했지만, 다른 페이지로 리디렉션 될 때 사용자는 더 이상 로그인하지 않습니다. sign_in (사용자) 바로 다음에 current_user 및 user_signed_in에 데이터가 있습니까? true를 반환합니다. 그러나 user_signed_in? 사이트의 다른 페이지로 이동하면 false를 반환합니다. 어떤 아이디어? – user2974739

+0

user_session이 비어 있습니다. 나는 그것이 그 일과 관련이 있다고 가정하고 있습니다. 사용자 세션을 설정하는 방법에 대한 제안 사항이 있습니까? – user2974739

+1

'after_sign_in_path'는'after_sign_in_path_for'로 이름이 바뀝니다. – artificis

관련 문제