I am trying to pass the token that I have in my controller to authenticate to an API in Laravel. But I'm encountering the error:
"token_not_provided"
Note: I am using JWTAuth with Laravel 5.4
Follow my API:
use Illuminate\Support\Facades\Validator;
use Illuminate\Http\Request;
use App\User;
use Illuminate\Support\Facades\DB;
use App\Http\Requests\PessoaRequest;
use Tymon\JWTAuth\Exceptions\JWTException;
use Tymon\JWTAuth\Facades\JWTAuth;
class PessoaController extends Controller
{
protected $user;
public function __construct(\Illuminate\Http\Request $request)
{
$header = $request->header('Authorization');
return response([
'status' => 'success'
]) ->header('Authorization', $header);
}
Angular Controller:
(function() {
app.controller('MemberController', [
'$scope', '$rootScope', 'AppConfig', '$http',
function($scope, $rootScope, AppConfig, $http) {
var vm = this;
$rootScope.page.title = 'SEC BASE';
$rootScope.authenticated = true;
$scope.token = $rootScope.user.remember_token;
getMembers();
// Obtem a listagem de todos os usuarios
function getMembers() {
$scope.token = $rootScope.user.remember_token;
Loading.show();
$http({
method: 'GET',
url: AppConfig.ApiUrl + 'members',
headers: {
'Content-Type' : 'application/x-www-form-urlencoded; charset=UTF-8',
'Accept': 'application/json',
'Authorization ' : 'Bearer' + $scope.token,
}
}).then( response => {
// console.log(response);
$scope.members = response.data;
}).finally(Loading.hide)
.catch(function(err) {
console.log(err);
});
}
]);
})();
Handler.php:
use Exception;
use Illuminate\Auth\Access\AuthorizationException;
use Illuminate\Auth\AuthenticationException;
use Illuminate\Foundation\Exceptions\Handler as ExceptionHandler;
use Tymon\JWTAuth\Facades\JWTAuth;
public function render($request, Exception $exception)
{
// detect instance
try {
$user = JWTAuth::parseToken()->authenticate();
} catch (Exception $e) {
if ($e instanceof \Tymon\JWTAuth\Exceptions\TokenInvalidException){
return $this->respondWithError("Token is Invalid");
}else if ($e instanceof \Tymon\JWTAuth\Exceptions\TokenExpiredException){
return $this->respondWithError(['error'=>'Token is Expired']);
}else{
return $this->respondWithError(['error'=>'Something is wrong']);
}
}
return $next($request);
}