Laravel 5.4 Passport Log用户操作(可选auth:api)

时间:2017-05-02 13:11:23

标签: php laravel laravel-passport

我正在使用Laravel Passport(auth:api),一切运作良好但是我已经想到了在特定路线上记录用户请求的记录。

当向GET发出/movie/65请求时,我想在movie_view中存储以下数据:user_idmovie_id(如果用户是登录)

但是在我的控制器中,如果没有设置$request->user()中间件,我将无法拨打auth:api

您建议达到此目的的最佳做法是什么?

3 个答案:

答案 0 :(得分:2)

默认身份验证类型应设置为config/auth.php

中的“api”

资料来源:https://laracasts.com/discuss/channels/general-discussion/optional-authentication-for-api?page=0(很难找到)

答案 1 :(得分:0)

做到这一点的最佳方法是:

if (\Auth::guard('api')->check()) {
    $user = \Auth::guard('api')->user();
}

您必须将防护设置为“ api”,默认值是“ web”。

答案 2 :(得分:0)

您可以按照此处的建议创建自定义中间件-https://laracasts.com/discuss/channels/laravel/how-to-handle-route-with-optional-authentication。然后对其应用api保护。假设您在auth.optional中将自定义中间件分配为Kernel.php,然后可以将该中间件用作auth.optional:api(带有api保护)。然后,在上述情况下,您可以通过$request->user()访问用户。