如何使用令牌保护来创建API?我试过它来实现它,我收到错误
call_user_func_array()期望参数1是有效的回调, class' Illuminate \ Auth \ TokenGuard'没有方法'尝试'
答案 0 :(得分:4)
在深入了解laravel的源代码后,我发现令牌守卫暂时没用。所有auth都传递给auth中间件,从那里,您可以看到它调用Auth::guard($name)->guest()
来检查用户是否已登录。\Auth::guard
将获得您在路由中指定的适当防护。我们这里说的是TokenGuard。在\ Illuminate \ Auth \ TokenGuard中,检查user
函数以查看TokenGuard
如何获取用户。首先,它将获得名为api_token
的输入参数。然后,它将使作为默认配置可能雄辩的提供者搜索数据库中的值。如果找到任何值,则会创建新的用户实例。如果没有名为api_token
的输入值,则会尝试其他一些选择:
在模型中匹配的键由受保护的属性storageKey
指定。
因此,令牌保护用于实现第三方API访问令牌,而不是存储在会话中的临时访问令牌。