Este foro ya no está activo, así que no puedes publicar nuevas preguntas ni responder a las preguntas existentes.

Error al llamar un servicio con symfony

2 de marzo de 2018

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;
    }
}