【发布时间】:2019-09-06 18:35:56
【问题描述】:
我有独特的要求,通过不为每个 html 页面创建视图来保护 laravel 中的静态站点(html 页面)。 我们已经在 laravel 中配置了 SSO,并希望仅向经过身份验证的 SSO 用户显示静态站点。静态站点太大,为所有静态页面创建控制器和视图将花费大量时间。
请专家提出以上要求是否有任何可能的解决方案
【问题讨论】:
标签: php laravel security authentication static
我有独特的要求,通过不为每个 html 页面创建视图来保护 laravel 中的静态站点(html 页面)。 我们已经在 laravel 中配置了 SSO,并希望仅向经过身份验证的 SSO 用户显示静态站点。静态站点太大,为所有静态页面创建控制器和视图将花费大量时间。
请专家提出以上要求是否有任何可能的解决方案
【问题讨论】:
标签: php laravel security authentication static
虽然我当然不会推荐这种做事方式,但理论上应该是可行的。我提供了一个过于简单的示例——当然,您需要设置额外的方法来处理 HTML 以外的任何内容。
编辑:由于您没有提供任何代码,因此不清楚您的 SSO 是如何设置的,但您需要使用中间件组(例如 auth)来保护路由。此外,path/to/static_html 不应公开可见。
web.php
// auth middleware group
Route::group(['middleware' => 'auth'], function () {
// catch-all route - place at end of file
Route::any('{path?}', 'PageController@handle')->where('path', '.*');
});
PageController.php
class PageController extends BaseController
{
public function handle($path = 'index.html')
{
$html = file_get_contents(base_path('path/to/static_html/'.$path));
return view('default',compact('html'));
}
}
default.blade.php
{!! $html !!}
【讨论】: