Json 来自报头的JWT令牌访问
我正在使用JWT令牌在Laravel中制作API,我想制作CRUD操作,我已经在Postman中测试了我的API 现在的问题是,我想通过Laravel刀片视图实现它,在postman中,我可以在标题中设置授权承载,我将如何在Laravel应用程序中实现这一点?不是在Postman中,简而言之,我想设置头,这样我就可以在每个请求中访问令牌 控制器:Json 来自报头的JWT令牌访问,json,laravel,jwt,token,Json,Laravel,Jwt,Token,我正在使用JWT令牌在Laravel中制作API,我想制作CRUD操作,我已经在Postman中测试了我的API 现在的问题是,我想通过Laravel刀片视图实现它,在postman中,我可以在标题中设置授权承载,我将如何在Laravel应用程序中实现这一点?不是在Postman中,简而言之,我想设置头,这样我就可以在每个请求中访问令牌 控制器: <?php class NewController extends Controller { public function log
<?php
class NewController extends Controller
{
public function login(Request $request)
{
$credentials = $request->only('email', 'password');
$token = auth()->attempt($credentials);
return $this->createNewToken($token);
}
public function register(Request $request)
{
$validator = Validator::make($request->all(), [
'name' => 'required|string|between:2,100',
'email' => 'required|string|email|max:100|unique:users',
'password' => 'required|string|confirmed|min:6',
]);
if ($validator->fails()) {
return response()->json(array(
"status" => false,
"errors" => $validator->errors()
), 400);
}
$user = User::create(array_merge(
$validator->validated(),
['password' => bcrypt($request->password)]
));
return response()->json([
'status' => true,
'message' => 'User successfully registered',
'user' => $user
], 201);
}
public function refresh()
{
return $this->createNewToken(auth()->refresh());
}
public function userProfile()
{
return $this->getAuthenticatedUser();
}
public function me()
{
$user = JWTAuth::parseToken()->authenticate();
return response()->json(array($user), 400);
}
protected function createNewToken($token)
{
return response()->json([
'access_token' => $token,
'token_type' => 'bearer',
'expires_in' => auth()->factory()->getTTL() * 60,
'user' => auth()->user()
]);
}
public function getAuthenticatedUser()
{
try {
if (!$user = JWTAuth::parseToken()->authenticate()) {
return response()->json(['user_not_found'], 404);
}
} catch (Tymon\JWTAuth\Exceptions\TokenExpiredException $e) {
return response()->json(['token_expired'], $e->getStatusCode());
} catch (Tymon\JWTAuth\Exceptions\TokenInvalidException $e) {
return response()->json(['token_invalid'], $e->getStatusCode());
} catch (Tymon\JWTAuth\Exceptions\JWTException $e) {
return response()->json(['token_absent'], $e->getStatusCode());
}
return response()->json(compact('user'));
}
}
您是否在刀片视图中使用类似于
Vue
或React
的内容?不,我使用的是Laravel刀片视图。令牌用于为API
s提供授权。如果您所做的只是提供刀片视图,那么您不需要使用JWT
。好的,谢谢。
'prefix' => 'auth',
], function ($router) {
Route::post('login', [App\Http\Controllers\NewController::class, 'login'])->name('apisignin');
Route::post('getauth', [App\Http\Controllers\NewController::class, 'getAuthenticatedUser'])->name('getAuthenticatedUser');
Route::post('userProfile', [App\Http\Controllers\NewController::class, 'userProfile']);
Route::post('me', [App\Http\Controllers\NewController::class, 'me']);
});