我正在开发一个应用程序,其中一些用户应有权访问其他用户帐户。例如:在一个家庭中,母亲和所有3个孩子都有一个帐户。现在,母亲应该可以访问所有孩子的帐户了。
是否可以使用Passport在Laravel中设置类似的内容?我想到了带有两列(parent_account,child_account)的“权限”数据库表。然后,父帐户可以在其具有权限的帐户之间切换。
Perfect就像是一个中间件,可以在其中设置Auth::actAs($child);
,然后每次Auth::user()
的调用都会成为孩子,直到我切换回“普通”帐户。
其他信息:我正在使用Laravel为我的React Frontend Application提供一个API。我尝试了Auth::loginUsingId
函数,但是当我使用它时,我注销并得到Method Illuminate\Auth\RequestGuard::loginUsingId does not exist.
异常。
我正在使用Laravel版本6.9.0
答案 0 :(得分:0)
我找到了解决问题的方法。
我添加了一个包含以下代码的中间件:
public function handle($request, Closure $next)
{
$activeChild = Auth::user()->activeChild; // id of child user
if ($activeChild) {
Auth::setUser($activeChild);
}
return $next($request);
}
之后,我将此中间件添加到了所有路由:
Route::group(['middleware' => ['actAsUser']], function () {
// some routes
});