2010-07-08 65 views
0

我通過參數(params ['session_key'])爲一個控制器傳遞用戶會話(這是一個Flash上​​傳腳本,所以我必須通過一個參數)。rails:authlogic將會話參數傳遞給UserSession.find

我不知道如何使用原始參數字符串訪問與authlogic的用戶會話。

通常我這樣做:

@current_user_session = UserSession.find 

我想我能做到這一點:

@current_user_session = UserSession.find(session_key) 

但傳遞密鑰作爲參數傳遞給方法似乎並不工作。

當我無法訪問會話cookie並需要在會話密鑰中使用param時,是否有任何想法如何使用authlogic查找用戶會話?

+0

你確定這是你應該做的嗎?在沒有cookie的情況下訪問會話似乎適合任何正常的使用模式。也許你真的想要用戶模型。 'Authlogic'提供了許多選項,例如'single_access_token'或'perishable_token',你可以用它作爲上傳的查找鍵 – bjg 2010-07-08 16:35:21

+0

是的,這可能會奏效。謝謝!我會看一看。 – djburdick 2010-07-08 19:02:43

回答

1

爲了獲得認證,需要一個「黑客」,這是非常棘手的工作。

如果你使用uploadify但您可能需要同樣的解決方案此處表示不知道: http://thewebfellas.com/blog/2008/12/22/flash-uploaders-rails-cookie-based-sessions-and-csrf-rack-middleware-to-the-rescue

唯一的問題是,我從來沒有發現在互聯網上一個100%的工作方案,我開始這篇文章並且在工作中很難解決這個問題。

我記得,我加在protect_from_forgery例外,我tmp_uploader方法

另一個必要的事情是在渲染的方法,我必須明確指出:

render :action => 'tmp_uploader.js.rjs' 

還有一個問題使用我的AppController使用的respond_to方法的過濾器,還將tmp_uploader方法添加到了他的列表中:除了列表

對不起,我不記得我還有什麼我不得不做的,但它真的是一個很大的痛苦。

+0

是的,我正在使用uploadify。是的,我之前看過那個帖子。我確實有中間件正在運行,但由於某種原因它不工作。也許你應該在你的解決方案上發表一篇文章;-)。我認爲我很接近,所以我會發布對我有用的東西。 – djburdick 2010-07-08 19:00:47

+0

不知道如果你看到,但我編輯我的回答與我所記得的做法。 – Draiken 2010-07-08 22:00:45