我目前正在使用Laravel Passport开发多身份验证,所以这个应用程序将有用户和设备,当我尝试注册设备时,它会将其保存到设备数据库中,如果我尝试登录,它会给我持有者令牌。但现在我想通过令牌获得用户中间件'auth:api‘或其他方式来获取设备信息,但令牌似乎存储在oauth中_访问_令牌表和用户_id .So除了用户之外,有没有办法为其他表使用laravel passport?谢谢?
下面是我为Devices编写的代码:
'datetime',
];
}
设备控制器:
query('name'))->get()) > 0)
return response()->json(['name has already been taken'],500);
$request->validate([
'name' => 'required|string',
'password' => 'required|string|confirmed']);
$device =new Device(
[
'name'=>$request->name,
'password'=>bcrypt($request->password)
]);
$device->save();
return response()->json([
'message' => 'Successfully created device!'
], 201);
}
public function login(Request $request){
//validate the data input
$request->validate([
'name' => 'required|string',
'password' => 'required|string',]);
//attempt returns true if the user is in the database
$credentials = request(['name', 'password']);
if(!Auth::guard('device')->attempt($credentials))
return response()->json([
'message' => 'Unauthorized'
], 401);
//get the device
$device = $request->user('device');
//create token PAT
$tokenResult = $device->createToken('Personal Access Token');
$token = $tokenResult->token;
if ($request->remember_me)
$token->expires_at = Carbon::now()->addWeeks(1);
//save the token
$token->save();
return response()->json([
'access_token' => $tokenResult->accessToken,
'token_type' => 'Bearer',
'expires_at' => Carbon::parse(
$tokenResult->token->expires_at
)->toDateTimeString()
],200);
}
public function index(Request $request)
{
return response()->json($request->user());
}
}
路由:
//routes for device auth
Route::group(
[
'prefix'=>'auth/device'
],function ()
{
Route::post('signup','DeviceController@signupDevice');
Route::post('login','DeviceController@login');
Route::group(
[
'middleware'=>'device'
],function(){
//all the routes that go throught middleware
Route::get('index','DeviceController@index');
});
});
发布于 2019-12-16 20:51:04
例如,如果您的表名为tbl_然后,您应该创建模型,如下所示,并在config/auth.php中添加模型路径
Model:
[
'users' => [
'driver' => 'eloquent',
'model' => App\model\Users\UserModel::class,
],
],
https://stackoverflow.com/questions/58506369
复制相似问题