【发布时间】:2021-06-08 17:27:49
【问题描述】:
我到处寻找解决方案,问题是我需要在我的 api 控制器中当前用户登录的 id。在 api 控制器中,我放置了中间件 api。 这是ApiController.php的代码:
public function __construct()
{
$this->middleware('auth:api');
}
public function createcorso(Request $request)
{
$corsoscii = new CorsoScii();
$corsoscii->tipo = $request->input('tipo');
$corsoscii->nome = $request->input('nome');
$corsoscii->membriMax = $request->input('membriMax');
$corsoscii->orario_inizio = $request->input('orario_inizio');
$corsoscii->orario_fine = $request->input('orario_fine');
$corsoscii->inizio = $request->input('inizio');
$corsoscii->fine = $request->input('fine');
$corsoscii->save();
$idUtente = $request->user('api')->id;
$idCorso = CorsoScii::latest()->first();
DB::table('iscrizione')->insert(
array('idUtente' => $idUtente, 'idCorso' => $idCorso)
);
return response()->json($corsoscii);
}
这是 api.php 路由:
Auth::routes();
Route::middleware('auth:api')->get('/user', function (Request $request) {
return $request->user();
});
//Operazioni di gestione e creazione corso scii per maestri
Route::post('/tipo', [App\Http\Controllers\ApiController::class, 'createtipo']);
Route::post('/corso', [App\Http\Controllers\ApiController::class, 'createcorso']);
Route::get('/mostracorsi', [App\Http\Controllers\ApiController::class, 'mostracorsi']);
Route::get('/mostracorso/{idCorso}', [App\Http\Controllers\ApiController::class, 'mostracorso']);
Route::put('/updatecorso/{idCorso}', [App\Http\Controllers\ApiController::class, 'updatecorso']);
Route::delete('/deletecorso/{idCorso}', [App\Http\Controllers\ApiController::class, 'deletecorso']);
//Operazioni di gestione prenotazioni ed iscrizioni per clienti impianto scii
Route::post('/iscrizione', [App\Http\Controllers\ApiController::class, 'iscrizione']);
Route::get('/vedicorso/{idCorso}', [App\Http\Controllers\ApiController::class, 'vedicorso']);
Route::delete('/deleteiscrizione/{idUtente}', [App\Http\Controllers\ApiController::class, 'deleteiscrizione']);
Auth::routes();
即使不是真的,用户也未经过身份验证。可能是中间件配置有问题。
【问题讨论】:
-
您的函数
createcorso未到达,因为您是Unathorized。您必须先提供正确的凭据。 -
在 API 的情况下,您必须提供标识用户的令牌。
-
不,您需要一种方法来登录用户,这将生成一个 JWT 令牌。是您将提供的令牌吗?
-
好的,谢谢我试试
-
此链接说明如何生成 JWT 令牌:blog.pusher.com/laravel-jwt
标签: php laravel rest laravel-8