Можно ли получить строку экземпляра приложения напрямую из функции бэкенда Wix?

Вопрос или проблема

В следующей документации объясняется, как получить строку экземпляра приложения с фронтенда, но интересно, возможно ли получить её и из функции бэкенда wix? Функция бэкенда определена в моем приложении и будет вызывать один из моих других API. Я надеюсь аутентифицировать запрос к своему другому API, используя строку экземпляра приложения.

https://dev.wix.com/docs/build-apps/develop-your-app/frameworks/wix-cli/app-development/authenticate-incoming-requests-to-your-backend#step-2–send-the-app-instance

Ответ или решение

Вопрос о том, возможно ли получить строку экземпляра приложения непосредственно из функции бэкенда Wix, является актуальным при разработке приложений, которые взаимодействуют с внешними API. К сожалению, в текущей архитектуре Wix нет прямого способа получить строку экземпляра приложения из бэкенда. Эта информация считается частью клиентского контекста и доступна только на стороне клиента.

Тем не менее, существует обходной путь, который вы можете использовать. Вам нужно будет передавать строку экземпляра приложения из клиентского кода в вашу функцию бэкенда. Это можно сделать следующим образом:

  1. Получение строки экземпляра приложения на клиенте: В вашем клиентском коде вы можете использовать доступные методы для получения строки экземпляра. Пример:

    import { getCurrentAppInstance } from 'wix-app';
    
    const appInstance = getCurrentAppInstance();
  2. Передача строки в бэкенд: После того как вы получили строку экземпляра приложения, вам нужно передать её в вызов функции бэкенда. Пример передачи строки в функцию:

    import wixFetch from 'wix-fetch';
    
    wixFetch('/backend/myFunction', {
       method: 'post',
       body: JSON.stringify({ appInstanceString: appInstance }),
       headers: { 'Content-Type': 'application/json' }
    });
  3. Обработка запроса в бэкенде: На стороне бэкенда вы можете принимать переданную строку экземпляра и использовать её для аутентификации запросов к вашему внешнему API. Пример функции бэкенда:

    import { ok, notFound } from 'wix-http-functions';
    
    export function myFunction(request) {
       const { appInstanceString } = request.body;
    
       if (!appInstanceString) {
           return notFound({ error: 'App instance string is required.' });
       }
    
       // Используйте appInstanceString для вашего API вызова
       // ...
    
       return ok({ success: true });
    }

Таким образом, хотя вы не можете получить строку экземпляра приложения непосредственно из функций бэкенда, данный метод передачи данных от клиента к бэкенду позволит вам аутентифицировать запросы к вашим внешним API эффективно.

Оцените материал
Добавить комментарий

Капча загружается...