我试图查看.pdf文件(使用PDFKit生成)未经身份验证,直接从给定网址host/.../profile.pdf
直接进入时出现问题。我,果然,要求我输入凭据,如下图所示(而不是在用户/ sign_in路径):直接访问未经身份验证的pdf文件时设计身份验证
我输入正确的凭据,箱体上下波动,并要求再次证明。它可能看起来像用户或密码是错误的,但它们不是。来自控制器的相关代码如下:
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
没什么特别的,你可以看到。我试图从筛选器中删除显示操作(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。
谢谢!
为什么一个框弹出? 'before_filter:authenticate_user!'应该将你重定向到登录页面,不是吗?你有什么改变吗? – Robin
您需要显示验证用户身份的代码。 – deviousdodo
@Robin,nope,没有什么变化 – scumah