ruby-on-rails – 直接访问未经身份验证的pdf文件时设计身份验证
尝试查看.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 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |