在我编写自定义变异解析器的情况下,当前必须从我的前端传递当前_ User的ID,以便能够在用户模型上执行::find
。然而,理想的做法是能够使用current_user
的实例,这样我就不必依赖于将ID传递给我的GraphQL服务器。
总的来说,我对Laravel和GraphQL的世界还是相当陌生的,然而,我在灯塔的文档中读到了提到@auth指令的内容,以及提到使用auth('api')->user()
的其他StackOverflow应答,然而,这对我来说是空的。我还应该提到,如果有任何不同,我将使用灯塔-图文-护照-奥斯特库来处理用户身份验证。有人知道如何访问current_user吗?
public function __invoke($_, array $args)
{
// $user = \App\Models\User::find($args['id']); <--- not ideal
$user = auth('api')->user(); <--- returns NULL
var_dump($user);
foreach ($user->notifications as $notification) {
$notification->viewed = true;
$notification->save();
}
$notifications = $user->notifications->toArray();
return [
'status' => 'Success',
'notifications' => $notifications
];
}
发布于 2020-11-17 21:16:25
我在灯塔中发现了一个有趣的部分--graphql护照-auth文档,其中讨论设置一个全局中间件来将登录用户插入到$context中。这与我所需要的完全一样,在将该行添加到文档中提到的lighthouse.php
配置的中间件部分之后,我能够使用$context->user()
返回当前登录的用户。
https://stackoverflow.com/questions/64882371
复制