PHP   发布时间:2022-04-04  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了php-在函数中两次使用Config :: set()的方式大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

我已经用谷歌搜索和stackoverflowed(如果可以的话),但是找不到一个简洁的答案:(一些参考:Laravel 4: when using Config::set to change auth.model then Auth::user() not work,Laravel 5.2 how to use config::set in middleware)

如何在Laravel 5.2.*中使用Config :: set()在运行时成功设置两次变量?

这是我尝试实现的示例:

我有两个表公司和用户(它们都使用JWTAuth从不同的路由登录).现在,我想在此路由Route :: get(‘/ computers’)上获取所有计算机记录.

现在的问题是,我想使用相同的中间件来执行此操作,但是我想确保所有这些用户(即公司或用户)都经过身份验证之后才能访问此资源

这是我尝试在中间件中使用Config :: set()的尝试:

//all.auth middleware
public function handle($request, Closure $next)
{
    Config::set('auth.providers.users.model', \App\Company::class);
    Config::set('jwt.user', \App\Company::class);

      //check if the request is for company
    if($company = JWTAuth::toUser(($request->has('token')) ? $request->token : $request->bearerToken())) 
    {
        return ['COMPANY' => $company];
    }

    //Unfortunately its not company, lets try users

    Config::set('auth.providers.users.model', \App\User::class);
    Config::set('jwt.user', \App\User::class);

    if($user = JWTAuth::toUser(($request->has('token')) ? $request->token : $request->bearerToken())) 
    {
        return ['USER' => $user];
    }
    throw new NotFoundHttpException('Your account Could not be found.');
    ...............
}

现在,我注意到的行为是,它成功地将JWT所使用的模型更改为Company,但并未将其更改为User,以防随请求一起发送的令牌是针对User的.

如果有人可以帮助我,我将不胜感激,至少了解这是否可能.

大佬总结

以上是大佬教程为你收集整理的php-在函数中两次使用Config :: set()的方式全部内容,希望文章能够帮你解决php-在函数中两次使用Config :: set()的方式所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: