在laravel API中与经过身份验证的警卫一起工作

时间:2018-06-12 07:41:30

标签: php laravel api authentication laravel-middleware

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

1 个答案:

答案 0 :(得分:0)

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

检查下面的例子我将使用常规守卫

从刀片加载vue组件

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

vue组件

<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 => {

        });
    }
}

Api路线

use Auth;

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

希望你觉得这很有帮助,祝你好运。