경고 :이 중 일부는 매우 잘못 될 수 있으므로 제 가정이 정확하지 않은 경우 알려주십시오. 내가 로그인에 편안한 인증을 사용하고레일 (ActiveRecord 세션 및 안정 인증) : 세션 테이블에 언제 기록됩니까?
:
는 여기에 내가 달성하기 위해 노력하고있어입니다. 그러나, 내 UI에 flex/ruby_amf를 사용하고 있기 때문에 Flex에서 각 연결을 개별적으로 인증해야합니다.
내가 그렇게하기로 결정한 방법은 로그인 화면을 삽입 된 플래시 페이지로 리디렉션하고 session-id를 flashvar로 삽입하는 것입니다. 플래시 응용 프로그램은 모든 요청과 함께 session-id를 보내고 관련 컨트롤러의 before 필터는 session-id로 식별 된 세션과 연관된 사용자가 로그온했는지 확인합니다.
사용자를 세션에 연결하는 방법은 세션 테이블에 'user_id'열을 추가하고 로그인 함수에서 호출 한 sql "update sessions set user_id ... '"유형 쿼리를 수행하는 것입니다.
그러나 user_id는 사용자가 2 번째로 로그인 할 때만 업데이트됩니다. 약간 조사한 결과 세션 테이블의 레코드가 로그인 기능 실행 중에 아직 없음을 알 수있었습니다.
그래서,이 시점에 이르기까지 말이, 그리고에 대한 모범 사례 등 다음 내 질문은 준수 경우 :
세션 테이블의 레코드 시간에 어떤 시점 생성에를? 로그인 함수에서 세션 객체를 업데이트하고 레일즈가 user_id를 데이터베이스에 쓰도록 할 수 있습니까?
레일 세션의 동작은 나에게 진정한 수수께끼입니다. 나는 어떤 도움을 주셔서 감사합니다.
감사합니다.
추신 : 여기에 세션 테이블 업데이트에 대한 토론이 있습니다. http://www.nabble.com/Rails-2.3-Sessions-td22720164.html – krispyfi
확인해 보니 문제를 조금 더 조사했습니다. 그리고 내가 생각해 보았던 틀린 가정 중 하나는 세션 객체가 세션 테이블의 한 행에 해당한다는 것입니다. 나는 session [: user_id] = Users.authenticate (name, pass)를 수행하고 session.save를 수행하여 DB에 쓸 수 있기를 바랬다. 실제로 (내가 틀렸다면 정답!) 세션 객체는 데이터 형식으로 인코딩 된 형태로 나타납니다. 내가하는 일은 기본적으로 올바른 것이라고 말하는 또 다른 링크가 있습니다. http://scottiestech.info/2009/04/02/rails-23-how-to-access-custom-columns-in-the- 세션 테이블 / – krispyfi