我有从数据库返回用户的情况。在我的控制器中,我尝试如下操作:
已更新:
注意:造成明显的误解。实际上,我以用户身份登录。那部分没问题。但是它看起来像auth ::以及我尝试检索用户时都不了解。它将我重定向到登录的端点...
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use Auth;
class UsersController extends Controller
{
public function getUser(){
$users = Auth::user();
dd($users);
}
}
关于api路由:
Route::group(['middleware' => 'auth:api'], function() {
Route::post("logout", "Api\AuthController@logout");
/* User */
Route::get('/user', 'Api\UsersController@getUser');
});
Route::group(["prefix" => "v1"], function(){
/* Auth */
Route::post("login", "Api\AuthController@login")->name("login");
Route::post("register", "Api\AuthController@register");
});
这是东西。如果我在Middleware:api之外使用UserController路由,则端点为null。如果在中间件中使用它,它将把我重定向到我登录名的端点。由于"->name('login')"
最后,我无法返回用户。另外,这就是config / auth的样子。
'defaults' => [
'guard' => 'web',
'passwords' => 'users',
],
顺便问一下。我试图将Guard的网站更改为api,但没有任何更改。
'guards' => [
'web' => [
'driver' => 'session',
'provider' => 'users',
],
'api' => [
'driver' => 'passport',
'provider' => 'users',
],
],
有人对这种情况有更好的了解吗?如何使用护照回国?我在这里想念东西吗?
答案 0 :(得分:1)
显然,问题出在请求标头上。只有登录的用户才能使用请求标头中的/api/user
来调用access_token
端点。
请求标头将具有这对
Authorization: Bearer eyJ0eXAiOiJKV1..........
在laravel部分不做任何事情,因为它按预期工作。
答案 1 :(得分:1)
如果您正在使用Laravel Passport。让我们在文件https://laravel.com/docs/5.8/passport
中进行阅读并使其相同从您的API请求中,需要将access_token传递给后端。
希望您可以解决该问题!