[这是我在api.php
中的路线。身份验证后,我没有通过其他途径获得用户详细信息
Route::post('/login','CustomLogin@userLogin');
Route::group(['middleware' => 'auth:api'], function(){
Route::post('/change-password','ChangePassword@changePassword');
});
public function changePassword(ChangepassRequest $request){
$user = Auth::user();
print_r($user);
die();
}
更新:那时我是laravel的新手。。因此,实际问题是未找到类Auth
!谢谢你的意见!我也在更新我的答案!
如果您在令牌系统中正确设置了所有设置,则登录方法可能有问题。
您可以使用下面的代码段登录用户,但可以根据您的凭据进行更改。
<?php
class AuthController extends Controller
{
/**
* Get a JWT via given credentials.
*
* @return \Illuminate\Http\JsonResponse
*/
public function login()
{
if (request::has(['email', 'password'])) {
$user = User::whereEmailAndPassword(request()->get('email'),request()->get('password'))->first();
$credentials = request(['email', 'password']);
if ($user and $token = auth()->attempt($credentials)) {
return response()->json(['message' => 'Login Successful', 'jwt_token'=>$token], 200);
} else {
return response()->json(['message' => 'Unauthorized'], 401);
}
} else {
return response()->json(['message' => 'Pease provide your email and password to login'], 401);
}
}
}
当然,有一百种方法可以完成相同的操作
您注释了$ user行,因此此变量根本没有声明。
// $user = Auth::user();
您应该取消注释:))
解决方案正在我的控制器中添加use Auth
!就这样