【发布时间】:2018-11-22 00:58:35
【问题描述】:
我正在尝试在 Laravel 5.2 中实现基于令牌的身份验证。我所做的是:
Routes.php
Route::group([
'middleware' => ['auth:api']
], function() {
Route::get('/api/reservation', 'apiController@get');
});
我已经修改了 User 模型并添加了api_token 字段并通过seeders添加了一个带有随机字符串的新用户:
迁移
Schema::table('users', function (Blueprint $table) {
$table->string('api_token', 60)->unique()->nullable()->default(null);
});
播种机
User::create([
...,
'api_token' => str_random(60),
]);
控制器
class apiController extends Controller
{
function get(Request $request) {
return Reserva::all();
}
}
然后,在Postman 中,我尝试使用我在数据库中的令牌获取添加/api/reservation?api_token=xxxxx 的url,但我总是得到未授权。奇怪的是,如果我在身份验证中间件上执行dd($this->auth),我会得到一个带有name='web' 的TokenGuard 对象。不应该是api吗?
可能是我理解错了,各位大神可以指点一下吗?谢谢
【问题讨论】:
-
你想使用 Laravel Passport 吗?
-
如果我可以让它在没有外部库的情况下工作,那将是完美的。否则我会使用它。
标签: php laravel rest authentication laravel-5.2