3月 11, 2021 - laravel    laravel实现Http Only已关闭评论

laravel实现Http Only

Http Only主要的目的是用于token的安全,可防止token的被串改,httponly表示不能被js获取到cookie中的token

这样就不需要通过Cookie让前端人员手动传递到后端了,适用于前后端分离的项目实现

注意:后端域名和前端域名不一致的话,httponly会失效

1:先加个中间件:

代码如下:

<?php

namespace App\Http\Middleware;

use Closure;
use Illuminate\Auth\Middleware\Authenticate as Middleware;

class AddAuthTokenHeader extends Middleware
{
    public function handle($request, Closure $next)
    {
        $cookie_name = config('session.auth_cookie_name');
        if ($request->hasCookie($cookie_name)) {
            $token = $request->cookie($cookie_name);
            $request->headers->add([
                'Authorization' => 'Bearer '.$token,
            ]);
        }

        return $next($request);
    }
}

2:加个登录时设置cookie,登出删除cookie

3:看效果这样就实现:

另外:

secure是加密,禁用与https的网站,若本地调试是http的,则需要配置这个参数为false,这样http也可以了

评论被关闭。