首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >wkhtmltopdf的sfGuard标记登录

wkhtmltopdf的sfGuard标记登录
EN

Stack Overflow用户
提问于 2012-07-19 11:22:02
回答 3查看 338关注 0票数 2

wkhtmltopdf允许使用webkit浏览器创建浏览器视图的屏幕截图。

我有一个Symfony 1.4应用程序需要登录,我想使用wkhtmltopdf创建一个"print this page“函数。

我如何才能安全地促进这一点。我正在考虑在每个屏幕上为print按钮创建一个一次性令牌,它允许wkhtmltopdf在不使用用户密码的情况下登录。

对于如何构建它,有什么建议吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-08-17 10:15:17

我们已经得出结论,使用内置的“让我保持登录”功能来解决这个问题。

票数 1
EN

Stack Overflow用户

发布于 2012-08-17 00:17:07

你会考虑一个不同的打印框架吗?那么jquery插件(例如https://github.com/ianoxley/jqueryprintpage#readme)呢?这样,您就不必允许从会话外部访问受限制区域。

如果您仍然想使用wkhtmltopdf,您可以轻松地创建一个接收url和user_id的操作,并创建一个唯一的令牌,我可能会将此令牌保存在您的DB或键值缓存中(取决于您的系统架构)。我不会提前创建唯一的令牌,我认为按需创建它更好(当您的用户要求打印时)。

您有几个选项可以在安全操作中启用打印,

1)创建自定义安全过滤器。在筛选器中,除了经过身份验证请求之外,您还必须允许包含"token“参数和url和user正确组合的请求。

2)将action修改为unsecured。如果您不希望更改安全筛选器,则必须将每个操作更改为"unsecured“,并创建一个函数来验证请求是否已通过身份验证或是否具有正确的token参数。

明智的做法是在使用一次令牌后删除每个令牌,这样就更难猜测令牌了。

此外,您可能希望创建一个定期工作进程,用于清除从未使用过的旧令牌。

票数 0
EN

Stack Overflow用户

发布于 2012-08-17 14:10:07

即使您已经决定了一种方法,我仍然想添加另一个选项,以帮助其他人查看此问题。

另一种替代方法可能是抓取正在查看的页面的当前源,并使用如下内容将其发布到打印机后端

代码语言:javascript
复制
$.post("/printer", document.documentElement.outerHTML);

这样,您还可以以一种简单的方式对HTML进行预处理。您的后台可以首先存储HTML,然后对其进行解析,例如转换图像或删除打印时不会使用的页面部分。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11553458

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档