Ich versuche, die Authentifizierung mit Laravel 5.3 und Angular 2 mit JWT zu implementieren.Lavarel 5.3 und JWT. Ich bekomme {"error": "token_not_provided"} für alle Routen bekommen
Die Auth Teil arbeitet, und ich bin in der Lage das Token zu bekommen, aber ich versuche, zu jedem bekommt Routen nagivate, Ich erhalte einen Fehler
Der Code
I den Provider und Aliase, sowie öffentliche Ordner mit dem Verkäufer und generiert den Schlüssel von jwt
In meinem Kernel hinzugefügt haben ich diese hinzugefügt haben:
'jwt.auth' => \Tymon\JWTAuth\Middleware\GetUserFromToken::class,
'jwt.refresh' => \TymonJWTAuth\Middleware\RefreshToken::class,
und csrfToken deaktiviert haben.
Das sind meine Routen
Route::resource('authenticate', 'AuthController', ['only' => ['index']]);
Route::post('authenticate', '[email protected]');
Route::post('logout', '[email protected]');
Und meine AuthController
class AuthController extends Controller
{
public function __construct()
{
// Apply the jwt.auth middleware to all methods in this controller
// except for the authenticate method. We don't want to prevent
// the user from retrieving their token if they don't already have it
$this->middleware('jwt.auth', ['except' => ['authenticate']]);
}
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function index()
{
// Get all roles
$users = User::with('role', 'branch')->get();
// Send the response
return response()->json([
'users' => $users
], 200);
}
// Authentification
public function authenticate(Request $request)
{
// Retrieve email
$email = $request->input('email');
$credentials = $request->only('email', 'password');
try {
// verify the credentials and create a token for the user
if (! $token = JWTAuth::attempt($credentials)) {
return response()->json(['error' => 'invalid_credentials'], 401);
}
} catch (JWTException $e) {
// something went wrong
return response()->json(['error' => 'could_not_create_token'], 500);
}
// Retrieve user
$user = User::where('email', '=', $email)->first();
// if no errors are encountered we can return a JWT
return response()->json(compact('token'));
// return response()->json([
// 'user' => $user,
// 'token' => compact('token')
// ], 200);
}
// Logout
public function logout(Request $request)
{
$this->validate($request, [
'token' => 'required'
]);
JWTAuth::invalidate($request->input('token'));
}
}
Wie gesagt, ich das Token nach Authentifizierung bekommen könnte, aber wenn ich dieses Token bin mit einem gewissen Route zu navigieren als diese:
Route::resource('authenticate', 'AuthController', ['only' => ['index']]);
ich dieses Ergebnis zu erzielen:
{
"error": "token_not_provided"
}