RubyCASは非常に便利なツールですが、自分のサイトのフォームからログインするときに問題が発生します。フォームはデフォルトであり、非表示フィールドは次のとおりです。
<td id="submit-container">
<input type="hidden" id="lt" name="lt" value="<%= @lt %>" />
<input type="hidden" id="service" name="service" value="<%= @service %>" />
<input type="submit" class="button" accesskey="l" value="Поехали"
tabindex="4" id="login-submit" />
</td>
カスタムログインアクションを備えたコントローラーは次のようになります
class UsersController < ApplicationController
before_filter CASClient::Frameworks::Rails::Filter, :except => [:new, :create, :cas_login]
def cas_login
credentials = { :username => params[:username], :password => params[:password]}
client = CASClient::Frameworks::Rails::Filter
@resp = client.login_to_service(self, credentials, 'http://local.mysite:3000/users/login')
if @resp.service_redirect_url.nil?
# if login failed, redisplay the page that has your login-form on it
flash[:error] = "Invalid email or password"
redirect_to root_url
else
return redirect_to(@resp.service_redirect_url)
end
end
end
問題:最初のアプリに正常にログインし、次の場所にCookieを設定した後rubycas-server-1.1.1/lib/casserver/server.rb
:
response.set_cookie('tgt', tgt.to_s)
rubycas-serverを使用して別のアプリを開こうとすると、Cookieが空になります
すぐに使用できるフォームからrubycas-serverを使用して最初のアプリにログインすると、すべて問題なく、2番目のアプリに自動的にログオンしました。
助けてください!この問題に3日を費やしました!