首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >用config处理Laravel安全路由

用config处理Laravel安全路由
EN

Stack Overflow用户
提问于 2016-09-14 07:54:24
回答 1查看 365关注 0票数 2

我在文档中看到,对于安全路由,Laravel仅在url上提供函数secure_url,并提供重定向方法。

代码语言:javascript
运行
复制
redirect()->secure('/path');

现在,对于切换协议,我们需要更改代码,这似乎非常混乱。最糟糕的是,我们可能需要更换预建的Auth控制器。

我的问题是,是否有更好的方法从配置切换到https。如果不可能的话,为什么?如果需要,我们可以叉开拉拉,并添加此功能。

EN

回答 1

Stack Overflow用户

发布于 2016-09-14 08:47:01

我使用的解决方案是创建一个安全的中间件。它检查请求是否安全。如果没有,则将其重定向到安全的。

首先,在中间件目录中创建一个中间件。

代码语言:javascript
运行
复制
    <?php namespace App\Http\Middleware;

    use Closure;

    class SecureMiddleware {

        /**
         * Handle an incoming request.
         *
         * @param  \Illuminate\Http\Request  $request
         * @param  \Closure  $next
         * @return mixed
         */
        public function handle($request, Closure $next)
        {
             if (!$request->secure()) {
                    return redirect()->secure($request->getRequestUri());
                }
            return $next($request);
        }

    }

在您的Kernel.php文件中注册它

代码语言:javascript
运行
复制
protected $routeMiddleware = [
        'auth'          => 'App\Http\Middleware\Authenticate',
        'auth.basic'    => 'Illuminate\Auth\Middleware\AuthenticateWithBasicAuth',
        'guest'         => 'App\Http\Middleware\RedirectIfAuthenticated',
        'securage'      => 'App\Http\Middleware\SecureMiddleware',
    ];

然后使用路由组指定希望安全路由的位置。

代码语言:javascript
运行
复制
Route::group(['middleware' => 'securage'], function() {
/* Routes here */
});
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39485226

复制
相关文章

相似问题

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