我发现 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 开箱即用的形式登录到第一个应用程序时,一切正常,我自动登录到第二个应用程序
请帮忙!在这个问题上花了3天!