Interview question
How do you handle API authentication using tokens (e.g. Laravel Sanctum/JWT)? Tokens का उपयोग करके API authentication कैसे handle करें?
Answer
Token-based authentication issues a token on login that the client sends with every subsequent request, avoiding the need for server-side session state.
// Login - issue token
Route::post('/login', function (Request $request) {
$user = User::where('email', $request->email)->first();
if (!$user || !Hash::check($request->password, $user->password)) {
return response()->json(['message' => 'Invalid credentials'], 401);
}
$token = $user->createToken('api-token')->plainTextToken;
return response()->json(['token' => $token]);
});
// Protecting routes
Route::middleware('auth:sanctum')->get('/user', function (Request $request) {
return $request->user();
});| Header sent by client | Value |
|---|---|
| Authorization | Bearer <token> |
Token-based authentication login पर एक token issue करता है जो client हर request के साथ भेजता है, server-side session state की ज़रूरत नहीं होती।
Route::post('/login', function (Request $request) {
$user = User::where('email', $request->email)->first();
if (!$user || !Hash::check($request->password, $user->password)) {
return response()->json(['message' => 'Invalid credentials'], 401);
}
$token = $user->createToken('api-token')->plainTextToken;
return response()->json(['token' => $token]);
});Was this answer clear?