所以我试图在前端和后端之间建立某种策略,所有的工作都很好,但是我对为我的应用程序用户声明一个范围有点困惑。
ApiSessionController.php
public function login(Request $request)
{
$email = $request->get('email');
$password = $request->get('password');
$user = User::where('email', $email)->first();
$token = $user->createToken(
'token',
['role' => $user->getRoleNames()->first()]
);
if (Auth::attempt(['email' => $email, 'password' => $password])) {
return response()->json('', 204);
} else {
return response()->json('Invalid credentials', 403);
}
}
我知道这段代码目前并没有使用令牌,但是我看到当我
return response()->json($token, 200)。
Nuxt.js frontend default.vue
<v-btn v-if="this.$auth.hasScope('admin')">admin</v-btn>
<v-btn v-else>No admin</v-btn>
现在,我已经读到 https:/laravel.comdocs7.xsanctum。 很多很多次
Route::middleware('auth:sanctum')->get('/user', function(Request $request) {
return $request->user();
});
返回我的用户很好,但是我不知道如何在后端创建作用域,通过一个令牌(我想是吗?
暂时找到了一个解决方案:)解释。设置一个范围, 当nuxtjs从laravel的GET用户调用中获取你的用户信息时
Route::middleware('auth:sanctum')->get('/user', function(Request $request) {
$user = $request->user();
$user['scope'] = $user->insertScopeMethod();
return $user;
});