加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – 直接访问未经身份验证的pdf文件时设计身份验证

发布时间:2020-12-17 01:49:20 所属栏目:百科 来源:网络整理
导读:尝试查看.pdf文件(使用PDFKit生成)未经身份验证时,我遇到了问题,只是直接从给定的URL主机/…/profile.pdf.我按预期要求输入图像中显示的凭据(不在users / sign_in路径中): 我输入正确的凭据,框上下移动并再次请求凭据.看起来好像用户或密码错了,但事实并非
尝试查看.pdf文件(使用PDFKit生成)未经身份验证时,我遇到了问题,只是直接从给定的URL主机/…/profile.pdf.我按预期要求输入图像中显示的凭据(不在users / sign_in路径中):

我输入正确的凭据,框上下移动并再次请求凭据.看起来好像用户或密码错了,但事实并非如此.控制器的相关代码在这里:

class Entrepreneur::ProfilesController < ApplicationController
  before_filter :authenticate_user!

  def show
    respond_to do |format|
      format.pdf do
        html = render_to_string(:layout => false,:action => "show.html.haml")
        kit = PDFKit.new(html)
        send_data(kit.to_pdf,:filename => "name.pdf",:type => 'application/pdf')
      end
    end
  end
end

没有什么花哨的,你可以看到.我试图从过滤器中删除show动作(before_filter:authenticate_user!,:except => [:show])并自己编写一个自定义过滤器,将未经身份验证的用户重定向到new_session_path,但这样做我不知道如何,注册后,将用户重定向到pdf节目.

简而言之,设计在访问pdf节目时询问我的凭据并且不接受它们.如何让用户访问sign_in页面并在签名后重定向回到pdf?

我正在使用Rails 3.0.7,Ruby 1.8.7和Devise 1.1.5.

谢谢!

解决方法

首先,确保它实际上是Rails服务于PDF而不是前面的Web服务器. (根据您的配置,可能是请求永远不会到达Rails.)

假设它是Rails服务文件,那么你应该检查你的devise.rb配置文件.您可能需要制作:pdf一种导航格式,允许Devise向您的sign_in页面发出302重定向:

config.navigational_formats = [:html,:pdf]#您可能有其他格式

此外,如果不存在,您可能需要将PDF添加到mime_types.rb初始化程序中:

Mime :: Type.register’application / pdf’,:pdf

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读