如何在公共用户访问特定页面时为只读目的对其进行授权


How to authorize public users when they access on the specific page, for read-only purposes

它的一般问题类型。我们在Zend中编写了web应用程序,我们正在为注册用户制作报告。现在,我们想为未注册的用户创建一些特定的报告,并向他们发送链接,以便他们可以看到该报告。但我们不想让其他用户访问该页面。

一个想法是制作可散列的URN,至少有一部分,类似

www.myaddress.com/2309039dskdfskj4/ReportStats/ 

这个问题的最佳解决方案是什么?

我会向您想要向其显示报告的未注册用户(比如您维护的邮件列表中的用户)发送一封电子邮件。

在那封电子邮件中,有一个他们可以访问的链接:example.com/reportsample.php

在该页面上,让他们确认自己的电子邮件地址(只向您存档的用户发送请求),并让他们知道已经发送了一个一次性报告请求邀请,该邀请将在24小时后过期。

在数据库的一个表中,编写一个存储随机id值的记录,并使该记录中的一个字段读取"NOTVIEWED"

然后,一旦用户检查了他们的电子邮件,他们就会看到一个链接:example.com/reportsample.php?access=123456(其中123456是随机ID)

一旦用户点击它,他们就可以查看报告,并且该ID的数据库记录被更新为"VIEWED"

如果有人试图再次查看该链接,他们将无法查看——用户将不得不再次请求访问。