当前位置: 首页 > 知识库问答 >
问题:

登录后将用户重定向到同一页面(Rails)

司空默
2023-03-14

我想在登录后将用户重定向到同一页面。该场景是,如果用户未登录,将重定向到登录页面。在登录页面上,当他单击一个可用的用户选项时,我想存储用户id,然后将他重定向回他来自的同一页面。为此,我使用以下代码:

在应用程序中提供帮助。rb:

module ApplicationHelper
def check_signed_in
if session[:user] == nil
  if request.format.html?
    session[:referer] = request.url
    redirect_to signin_index_path
  else
    @error = 'Please Signin!'
    @forward_page = '/signin'
    render 'signin/show_signin.js'
  end
end
end
end

在SigninController中:

class SigninController < ApplicationController
def index
session[:user] = params[:user_id]
redirect_to session[:referer]
end 
end

在登录/索引页中:

We simulate a signin here. Click on an user and you will logged in as the selected user and you will be redirected the previous page.

我得到的错误:

用户id未被保存,在重定向时,我收到一个错误,表示会话[:referer]为零。

请解释我做错了什么


共有1个答案

邢思淼
2023-03-14

你叫它async如果request.format.html?然后问一个格式是html?它返回false。因为它返回false,所以您不能存储此会话会话[:裁判]=request.url

Rails也有redirect_to: back选项。先试试下面这个,让我知道...

帮手:

module ApplicationHelper
  def check_signed_in
    if session[:user]
      session[:referer] = request.url
    end
  end
end

控制器:

class SigninController < ApplicationController
  include ApplicationHelper

  def index
    check_signed_in
    session[:user] = params[:user_id]
    redirect_to session[:referer]
  end 
end
 类似资料:
  • 记录器文件中的日志- org.springframework.Security.Access.event.loggerlistener-安全授权失败,原因是:org.springframework.Security.Access.accessdeniedexception:访问被拒绝;通过身份验证的主体:org.springframework.security.authentication.ano

  • 我正在我是身份提供者的地方实施SSO,现在我能够成功登录到服务提供者。但它把我带到了主页。我想在发布响应时指定着陆页URL。搜索了很多,但找不到任何令人信服的东西。不太知道SAML响应的哪个元素携带着陆页URL或采用我必须指定的形式。使用java和opensaml库生成响应。

  • 问题内容: 我正在尝试建立一个简单的网站,其登录功能与SO上的登录功能非常相似。用户应该能够以匿名用户的身份浏览网站,并且每个页面上都会有一个登录链接。当单击登录链接时,用户将被带到登录表单。成功登录后,应将用户带回到他首先单击登录链接的页面。我猜想我必须以某种方式将当前页面的url传递给处理登录表单的视图,但是我真的无法使其正常工作。 编辑:我想通了。我通过将当前页面作为GET参数传递来链接到登

  • 在Woocommerce for WordPress上,当您在产品页面上单击登录时,当您登录时,您将从您的帐户重定向到仪表板页面,而不是之前阅读的页面。 我正在尝试这样做,在登录前重定向到上一页,如果我的站点上没有上一页,则重定向到主页。 我已经试过了,但每次我都被重定向到主页。 有什么想法吗?

  • 我将OpenId4Java与JSF应用程序一起使用,我在web.xml中添加了安全约束,如下所示。 现在,当应用程序启动并且用户希望访问 http://www.somehost:8080/myapp/core/abc.xhtml 在web.xml的帮助下,我可以向用户显示一个登录页面,现在这里我用openid登录,就像Google、Yahoo现在我的问题是,我如何告诉openid我的返回url是

  • 问题内容: 我正在做一个简单的论坛,由一系列论坛组成,每个论坛分别代表首页,主题,postitit,登录名和用户列表页面。在某些页面上,当用户未登录时会出现一个链接。 我想要实现的是在登录后触发重定向(在RequestDispatcher上使用forward()),以便浏览器返回到用户在单击登录链接之前所在的页面。为此,我看到了两种解决方案。 第一种解决方案是使用带有登录按钮的HTML 和一个不可