我是第一次使用 Laravel Sanctum,尤其是使用 API。我必须创建一个仅用于返回 JSON 的报告的 API,这是我无法通过 POSTMAN 访问的主题,因为它告诉我"message": "Unauthenticated."
我按照项目中的文档告诉我的配置步骤进行操作。
我按照文档在我的项目中告诉我的配置步骤,即安装 sanctum,运行提供程序,创建令牌迁移,在用户 sanctum 模型中引用并放置 HasApiTokens,此时我不知道是什么再做。
一方面,文档告诉我,我可以通过放置这一行来访问,token = $user->createToken('token-name');
但我不知道在哪里放置它,因为它没有接口,因为目的是通过 PowerBi 访问
这是我的路由 API
Route::group(['middleware'=> 'auth:sanctum'], function (){
Route::get('/reports','Api\ReportController@getTicketsCotizados');
});
我的控制器
public function __construct()
{
$this->middleware('auth');
}
public function getTicketsCotizados(){
$this->authorize('view ticket');
$cotizados =Ticket::ticketWithLeadForStatus(3)->get();
return response()->json($cotizados, 200);
}
核心
'api' => [
EnsureFrontendRequestsAreStateful::class,
'throttle:60,1',
\Illuminate\Routing\Middleware\SubstituteBindings::class,
],
用户
use Laravel\Sanctum\HasApiTokens;
class User extends Authenticatable
{
use Notifiable, UsesTenantConnection, HasApiTokens, HasRoles;
(...)
}
警卫
'api' => [
'driver' => 'sanctum',
'provider' => 'users',
'hash' => false,
],