server126

502 经验值

那要是这样,我就没有必要引入cors包了吧

换句话说吧

laravel 5.1的项目引入使用laravel-cors包,访问api报错

错误信息如下:
TokenMismatchException in VerifyCsrfToken.php line 53:

那我的项目中使用这个包,然后想解决跨域的问题,但是跨域调用失败,错误信息:

TokenMismatchException in VerifyCsrfToken.php line 53:

如何解决这个问题?

因为我项目中不全都是api接口,还有网站其他模块呢

追问一下,如果这样过滤,那项目不引入 laravel-cors 包也可以吧?那想就没有必要引入laravel-cors包,对不对?

版本:laravel 5.1
系统:Mac Pro

laravel项目引入了laravel-cors;链接地址:https://github.com/barryvdh/laravel-cors

所有配置都安装GitHub上的正确配置完毕,项目可以正常运行,但是发现跨域访问api还是无法访问:报错还是VerifyCsrfToken的问题;

后来注释掉Kernel.php文件中的"VerifyCsrfToken"后,api就可以正常访问了

protected $middleware = [
 //  \App\Http\Middleware\VerifyCsrfToken::class,
    ];

我想问一下,能不能在不注释掉上面那行代码,继续可以跨域访问api呀?
因为项目中不全是api服务,还有wen网站呢
其实我只想当api服务的时候可以继续跨域访问,但是web网站继续使用VerifyCsrfToken检查功能

都可以登录成功,我觉得不应该是数据库的问题吧

数据库结构不一样,但是?跟这有关系吗?

在描述一下:

修改.env中数据库连接到demo中就可以正常使用,也可以正确获取到当前登录用户信息
但是使用实际项目中的数据库就无法正常使用, 用户100%登录成功了,在任意controller中都可以获取到当前登录用户的信息,唯独在:AuthServiceProvider类中的boot(GateContract $gate)方法中无法获取当前登录用户信息,显示的是null (dd(Auth::user());

我按照楼主的“实现用户权限管理”视频教程做一个demo,测试发现可以运行成功,并且可以权限过滤。

但是我的实际项目中使用这个功能就是不写,实在是找不到问题所在;最后我用demo中的laravel项目代码,直接连接我实际项目中的数据库发现还是不成功(修改.env中数据库配置);
代码100%一模一样;
mac、win系统都试过;
laravel5.1的版本;

代码如下:

 public function boot(GateContract $gate)
        {
            parent::registerPolicies($gate);
            foreach ($this->getPermissions() as $permission) {
                $gate->define($permission->slug, function (User $user) use ($permission) {
                    dd($user);  //demo中的数据库可以显示user信息,但是实际项目中数据库就不运行这里,后来我发现使用dd(Auth:user()); 输出的null,我肯定100%登录成功了,而且在controller中可以正确获取到当前登录用信息
                    return $user->hasRole($permission->roles);
                });
            }
        }
        private function getPermissions()
        {
            return Permission::with('roles')->get();
        }