Как установить сервер ONLYOFFICE с использованием Docker и интегрировать его с приложением на Vue 3?

Я развернул сервер по адресу <a href="https://github.com/ONLYOFFICE/Docker-DocumentServer" rel="nofollow">https://github.com/ONLYOFFICE/Docker-DocumentServer</a>. Сервер функционирует и доступен по localhost. Однако, при работе с редактором на консоли появляется сообщение: "Document security key is not correctly formed. Please contact your document server administrator". 

Я попытался перезапустить сервер с параметром -e JWT_ENABLED=false, но теперь получаю ошибку: "The document could not be saved. Please check connection settings or contact your administrator." Когда я нажимаю кнопку 'OK', меня просят скачать документ. 

Вот также пример моего Vue-компонента: 
<pre><code class="javascript">&lt;template&gt;
  &lt;DocumentEditor
    id="docEditor"
    documentServerUrl="http://localhost/"
    :config="config"
    :events_onDocumentReady="onDocumentReady"
    :onLoadComponentError="onLoadComponentError"
  /&gt;
&lt;/template&gt;

&lt;script lang="ts"&gt;
import { defineComponent } from "vue";
import { DocumentEditor } from "@onlyoffice/document-editor-vue";

export default defineComponent({
  name: "ExampleComponent",
  components: {
    DocumentEditor,
  },
  data() {
    return {
      config: {
        document: {
          fileType: "docx",
          key: "Khirz6zTPdfd7",
          title: "Example Document Title.docx",
          url: "https://example.com/url-to-example-document.docx",
        },
        documentType: "word",
        editorConfig: {
          callbackUrl: "https://example.com/url-to-callback.ashx",
        },
      },
    };
  },
  methods: {
    onDocumentReady() {
      console.log("Document is loaded");
    },
    onLoadComponentError(errorCode</code></pre> 

Как мне решить проблему с ошибками, упомянутыми выше?
  • 24 сентября 2024 г. 12:23
Ответы на вопрос 1
При интеграции ONLYOFFICE с вашим приложением на Vue 3 и использовании Docker важно убедиться, что все настройки сделаны правильно. Ошибка, с которой вы сталкиваетесь, может быть связана с несколькими аспектами, связанными с JWT, URL и конфигурацией. Давайте рассмотрим основные шаги, которые вы можете предпринять, чтобы решить проблемы с интеграцией ONLYOFFICE.

### 1. Настройка сервера ONLYOFFICE

Сначала убедитесь, что сервер ONLYOFFICE правильно настроен и функционирует с конфигурацией JWT.

#### Запуск Docker-контейнера

Если вы хотите отключить JWT, вы можете запустить контейнер с параметром:

```bash
docker run -i -t -d -p 80:80 -e JWT_ENABLED=false onlyoffice/documentserver
```

Если вы хотите использовать JWT (что рекомендуется для повышения безопасности), убедитесь, что вы указали `JWT_SECRET` при запуске контейнера, например:

```bash
docker run -i -t -d -p 80:80 -e JWT_ENABLED=true -e JWT_SECRET=my_secret_key onlyoffice/documentserver
```

Замените `my_secret_key` на ваш собственный секретный ключ.

### 2. Настройте конфигурацию Vue компонента

Если вы используете JWT, ключ должен быть правильно сформирован. Убедитесь, что вы правильно передаете JWT-токен из вашего Vue-приложения.

Вот пример того, как вы можете создать JWT-токен с использованием вашего секретного ключа:

```javascript
import jwt from "jsonwebtoken";

const secretKey = "my_secret_key"; // Убедитесь, что это тот же секретный ключ, что и в ONLYOFFICE
const payload = {
  // Любые необходимые данные для вашего документа
  id: "document_id",
  title: "Example Document Title",
};

// Создание токена
const token = jwt.sign(payload, secretKey, { expiresIn: '1h' });
```

Теперь вы можете использовать этот `token` в параметре `key` документа:

```javascript
data() {
  return {
    config: {
      document: {
        fileType: "docx",
        key: token, // Используйте токен здесь
        title: "Example Document Title.docx",
        url: "https://example.com/url-to-example-document.docx",
      },
      documentType: "word",
      editorConfig: {
        callbackUrl: "https://example.com/url-to-callback.ashx",
      },
    },
  };
},
```

### 3. Проверьте Callback URL

Убедитесь, что `callbackUrl` указывает на правильный адрес на вашем сервере. ONLYOFFICE будет отправлять данные о сохранении документа по этому URL. Убедитесь, что ваш сервер принимает эти запросы.

### 4. Проверка окружения

Перепроверьте конфигурации вашего окружения Docker и вашего Vue-приложения. Убедитесь, что URL, которые вы используете (для сервера и документов), доступны и правильно настроены.

### 5. Логи и отладка

Если ошибка сохраняется, проверьте логи сервера ONLYOFFICE. Они могут дать больше информации о том, что именно происходит. Логи можно найти с помощью команды `docker logs <container_id>`.

### 6. Заключение

Следуя этим шагам, вы должны быть в состоянии решить проблемы с интеграцией ONLYOFFICE в ваше Vue 3 приложение. Если после настройки конфигурации вы все еще сталкиваетесь с ошибками, сообщите, какие конкретно сообщения вы видите и на каком этапе возникают проблемы.
Похожие вопросы