특정 라우팅은 HTTPS 만 가능하게 하기

Submitted by river - 등록 3 years ago - 수정 3 years ago

특정 요청은 무조건 https로만 접근하게 하고자 할 때, http로 접속한 경우 https로 리다이렉트 하도록 하기 위해서 다음의 Middleware를 사용하면 된다.

app/Http/Middleware/ForceHttps.php

<?php

namespace App\Http\Middleware;

use Closure;

class ForceHttps
{
    /**
     * Handle an incoming request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure  $next
     * @return mixed
     */
    public function handle($request, Closure $next)
    {
        if (! $request->isSecure()) {
            return redirect()->secure(
                $request->getPathInfo() . ($request->getQueryString() ? ('?' . $request->getQueryString()) : '')
            );
        }

        return $next($request);
    }
}

app/Http/routes.php

Route::get('auth/login', ['middleware' => 'forcehttps', 'uses' => 'Auth\LoginController@getLogin']);
comments powered by Disqus