2

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日を費やしました!

4

0 に答える 0