Buenas presento el siguiente error Error: Call to a member function checkToken() on string. la comuncación entre el editAction al servicio del helpers se hace sin problemas. pero cuando entra a la clase helpers no se comunica con el metodo checkToken de la clase JWTAuth.
en el controlador:
public function editAction(Request $request) {
$helpers = $this->get("app.helpers"); $hash = $request->get("authorization", null); $authCheck = $helpers->authCheck($hash); if ($authCheck == true) { $identity = $helpers->authCheck($hash, true); $em = $this->getDoctrine()->getManager(); $user = $em->getRepository("BanckendBundle:Usuariosv")->findOneBy(array ( "id" => $identity->sub )); $json = $request->get("json", null); $params = json_decode($json);
el servicio Helpers:
class Helpers { public $jwt_auth;
public function __construct($jwt_auth) { $this->jwt_auth = $jwt_auth; } public function authCheck($hash, $getIdentity = false){ $jwt_auth = $this->jwt_auth; $auth = false; if($hash != null){ if($getIdentity == false){ $check_token = $jwt_auth->checkToken($hash); (de esta linea no pasa !!!! ) if($check_token == true){ $auth = true; } }else{ $check_token = $jwt_auth->checkToken($hash, true); if(is_object($check_token)){ $auth = $check_token; } } } return $auth; }
el metodo checkToken:
public function checkToken($jwt, $getIdentity = false) {
$key = $this->key; $auth = false; try { $decoded = JWT::decode($jwt, $key, array('HS256')); } catch (\UnexpectedValueException $e) { $auth = false; } catch (\DomainException $e) { $auth = false; } if (isset($decoded->sub)) { $auth = true; } else { $auth = false; } if ($getIdentity == true) { return $decoded; } else { return $auth; } }