我正在使用 authlogic 和 authlogic-oid 编写一个 rails3 应用程序,以允许用户使用他们的 LinkedIn 帐户登录和注册。我可以调用 LinkedIn 进行身份验证,但我遇到的问题是,当调用返回到我的 rails 应用程序时,它在 /user_sessions 上调用 GET 并调用索引控制器,而不是执行创建的其余部分控制器。这是控制器:
# POST /user_sessions
def create
@user_session = UserSession.new(params[:user_session])
@user_session.save do |result| # <-- redirects to api.linkedin.com here
if result
flash[:success] = "Login successful!"
redirect_back_or @user_session.user_path
else
flash.now[:error] = "Invalid username/password combination."
@title = "Sign in"
render 'new'
end
end
end
一切都很好,直到if result
永远不会被调用,因为程序在index
控制器中恢复执行,而不是从中断的地方继续执行。任何有关如何解决此问题的想法将不胜感激。
编辑:我认为控制器没有完成执行的假设似乎是错误的。我已经放入了一堆调试语句,并了解到该程序确实在 @user_session.save 之后在此控制器中恢复执行,但它没有在 if 语句上执行任何一个条件。我对这个很困惑。