Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/297.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 开始使用laravel API中经过身份验证的警卫_Php_Laravel_Api_Authentication_Laravel Middleware - Fatal编程技术网

Php 开始使用laravel API中经过身份验证的警卫

Php 开始使用laravel API中经过身份验证的警卫,php,laravel,api,authentication,laravel-middleware,Php,Laravel,Api,Authentication,Laravel Middleware,我有一个会话登录系统的几个警卫。我经常使用Vue,为了正确地获取和发布数据,我需要在Vue中进行身份验证。问题是如何让经过身份验证的会话用户使用API。因此,在api.php中,我想使用一个控制器,其中间件是经过身份验证的用户。我不想使用Passport,因为我只在网页上登录,没有API。vue支持组件还有一种称为道具的东西,它们是可以传递给vue组件的数据。我通常会做的是将经过身份验证的用户id传递给我的vue组件,然后当我从vue组件I发出请求时将当前经过身份验证的用户传递到后端,然后在那里

我有一个会话登录系统的几个警卫。我经常使用Vue,为了正确地获取和发布数据,我需要在Vue中进行身份验证。问题是如何让经过身份验证的会话用户使用API。因此,在api.php中,我想使用一个控制器,其中间件是经过身份验证的用户。我不想使用Passport,因为我只在网页上登录,没有API。

vue支持组件还有一种称为道具的东西,它们是可以传递给vue组件的数据。我通常会做的是将经过身份验证的用户id传递给我的vue组件,然后当我从vue组件I发出请求时将当前经过身份验证的用户传递到后端,然后在那里检查随请求接收的id是否与当前经过身份验证的用户相同

检查下面的示例,我将使用常规防护

从刀片服务器加载vue组件

//loading vue test-component and pass the authenticated user 
<test-component :authuser="{{Auth::(user)->id}}"></test-component>

希望这对您有所帮助,祝您好运。

哦,这是一个很好的例子,谢谢您的努力!虽然这不是我想要的。在我的控制器中,我应该使用一个中间件,这样我就不能得到当前经过身份验证的保护。我使用的是
Hesto/multi-auth
每当我设置构造函数时,都会出现未经验证的错误,即使我在构造器中设置了特定的保护,在这种情况下你也很受欢迎,我认为你可以使用与上面相同的方法来使用request classed,这样你仍然可以在你的类上使用中间件,并在authorize方法中的request类中进行身份验证,你可以使用Auth facade试试看
<script>
export default {
    props : ['authuser'], //should be the same name as you passed it
    data(){
        return {

        }
    },
    created(){
        axios.post('/api/test' , {
             'authuser' : this.authuser
        })
        .then(res => {
            console.log(res);
        })
        .catch(err => {

        });
    }
}
use Auth;

Route::post('api/test' , function($request){
    if(Auth::user()->id == $request->authuser)
       return 'you are authenticated';
    else 
       return 'you are not authenticated';
});