Почему использование генерации JWT, как в документации CKEditor, приводит к ошибке 401 при загрузке изображения? - PullRequest
0 голосов
/ 07 декабря 2018

У меня проблема с облачными сервисами CKEditor.Я пытаюсь интегрировать плагин ckeditor easyimage в drupal8.Когда я использую маркер конечной точки разработки, который мне предоставляет облако CKEditor, плагин работает так, как ожидалось.Изображения загружаются и все работает нормально.Но когда я использую пользовательский токен jwt, возникает ошибка.Когда я пытаюсь загрузить изображение, я получаю 401 ошибку в ответ.Я не понимаю, где ошибка.

Ошибка: {_csError: true, type: "HttpError", code: "unauthorized", message: "Invalid token", data: {},…}

CKEditor odcumentation: https://ckeditor.com/docs/cs/latest/guides/token-endpoints/php.html

Мой код сгенерирован jwt:

</p>

<?php 
namespace Drupal\ckeditor_easyimage\Controller;

use Drupal\Core\Controller\ControllerBase;
use Firebase\JWT\JWT;
use Symfony\Component\HttpFoundation\Request;
use Zend\Diactoros\Response\JsonResponse;

/**
 * Class EasyImageEndPoint.
 *
 * @package Drupal\ckeditor_easyimage\Controller
 */
class EasyImageEndPoint extends ControllerBase {

  /**
   * Creates authorization token for CKEditor cloud services.
   *
   * @param \Symfony\Component\HttpFoundation\Request $request
   *   Sample comment.
   *
   * @return \Zend\Diactoros\Response\JsonResponse
   *   Return JWT generated token.
   */
  public function token(Request $request) {

    $secretKey = "cdDhwW2lFTDOC1g8ScYuHCDFpBbAynfgdDlk3gfcoejMtp1Q4EWA2gRBNiXp";
    $environmentId = "PVbOTQcbLUGR6lgqTk2u";
    $payload = [
      "iss" => $environmentId,
      "iat" => time(),
    ];
    $jwt = JWT::encode($payload, $secretKey);
    return new JsonResponse(print($jwt));
  }
}
...