Mar 14, 2022
0
Level 1
how to make multi auth for sanctum to protect api
i have already multi auth system in my project, one for the user and the other for admin, and here is my guards
'guards' => [
'web' => [
'driver' => 'session',
'provider' => 'users',
],
'admin' => [
'driver' => 'session',
'provider' => admin_auth',
],
],
'providers' => [
'users' => [
'driver' => 'eloquent',
'model' => App\Models\User::class,
],
'admin_auth' => [
'driver' => 'eloquent',
'model' => App\Models\admins\admin::class,
],
],
and I would like to have multi auth for API using sanctum because I only do it for one auth which is the user
here is my code to create token
// Validate the form data
$this->validate($request, [
'phone_number' => 'required|numeric',
'password' => 'required',
//'device_name' => 'required', for mobile app //need to be placed in token name
]);
$user = User::where('phone_number', $request->input('phone_number'))->first();
// Check password
if(!$user || !Hash::check($request->input('password'), $user->password)) {
return response([
'message' => 'The phone number or passowrd is not correct'
], 401);
}
$roles = $user->getRoleNames()->toArray();
$token = $user->createToken('mymobile_token', $roles)->plainTextToken;
so how to create another auth for the admin? and how to protect the public API which does not need to have a login
Please or to participate in this conversation.