Jwtauth 自定义认证头信息

自定义认证头

项目使用的tymon/jwt-auth包作为 token 的认证,过程中需要迁移项目,因为之前公司的 token 头部使用自定义的,并且他们还修改了包的头信息。就是下面头部信息。

class AuthHeaders implements ParserContract
{
    // 下面这两处就是被修改的
    protected $header = 'authorization'; 

    protected $prefix = 'bearer';
}

迁移项目过程了,因为拉取了新的包,所以还要去动包的信息,这是极其不合理的行为。所以就在包中尝试找到了更好的解决办法。如果在项目迁移过程中遇到了类似的问题该如何去做呢?这里只提供了我能想到的解决办法。需要在 AppServiceProvider 中加入该方法就可以了。

    protected function setAuthHeader()
    {
        $chain = $this->app['tymon.jwt.parser']->getChain();

        $chain[0] = $chain[0]->setHeaderPrefix('项目的 token 前缀')->setHeaderName('项目的头信息 key');

        $this->app['tymon.jwt.parser']->setChain($chain);
    }

如果你有更好的办法可以提供,欢迎留言或者改进。

本作品采用《CC 协议》,转载必须注明作者和本文链接
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
讨论数量: 2

我这这样解决的,新增一个中间件,中间件中重新给标头赋值
.
file

4年前 评论
JaguarJack (楼主) 4年前

大佬,你这个方法加到AppServiceProvider没用啊,还是验证失败
还有这个方法在哪里调用啊,我是在boot里面调用的

3年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!