Php 如何使用中间件,以便用户在查看页面/文件之前必须填写密码?

Php 如何使用中间件,以便用户在查看页面/文件之前必须填写密码?,php,laravel,laravel-5,Php,Laravel,Laravel 5,对于我正在构建的网站,我需要对PDF文件进行密码保护,为此,我希望使用中间件,以便每个想要访问文件路径的人都将被重定向到一个页面,在该页面上他们必须填写密码。当他们填写正确的密码时,他们将被重定向到该文件,如果没有,他们将被重定向到上一页 我一直在网上寻找一种方法来实现这一点,甚至一直试图找到一种方法来加密PDF文件本身,但找不到任何接近我试图实现的东西 我希望有人能帮我解决这个问题,提前谢谢你 编辑:在下面的图片中,你可以看到它的意义 在生成pdf的链接之前。。你需要发出一个pop来询问用户名

对于我正在构建的网站,我需要对PDF文件进行密码保护,为此,我希望使用中间件,以便每个想要访问文件路径的人都将被重定向到一个页面,在该页面上他们必须填写密码。当他们填写正确的密码时,他们将被重定向到该文件,如果没有,他们将被重定向到上一页

我一直在网上寻找一种方法来实现这一点,甚至一直试图找到一种方法来加密PDF文件本身,但找不到任何接近我试图实现的东西

我希望有人能帮我解决这个问题,提前谢谢你

编辑:在下面的图片中,你可以看到它的意义


在生成pdf的链接之前。。你需要发出一个pop来询问用户名、电子邮件和密码。。如果这一条件得到满足。。。然后将页面重定向到pdf。

首先,您需要一个控制器来验证用户凭据:

您的控制器将类似于:

$credentials = $request->only('email', 'password');

if (Auth::attempt($credentials)) {
    return view('PdfPage', ['authenticated' => true]);
} else {
    return view('PdfPage', ['authenticated' => false]);
}
$credentials = $request->only('email', 'password');

if (Auth::attempt($credentials)) {
    return view('PdfPage', ['authenticated' => true]);
} else {
    return view('ErrorPage', ['authenticated' => false]);
}
在查看页面中,您可以检查使用的返回值,如:

@if($authenticated)
    <div>Show this div only if the user is authenticated</div>
@else
    <div>User is not authenticated</div>
@endif 

您是在寻找生成受密码保护的PDF文件的方法,还是在寻找向路由添加一些密码保护的方法?第二个看起来像是你只需要自己编码的东西。我在想一种方法,将用户重定向到一个页面,当他试图导航到该页面/文件时,他必须填写密码。如果他填写的密码正确,他将被重定向到他试图访问的文件。此图像将更好地解释它。用户是否经过身份验证?他写自己帐户的密码吗?用户通过oauth使用AD登录,登录Inca时不必填写密码。您进一步解释为什么需要用户名或电子邮件地址吗?