Ошибка Appwrite: источник Inavlid. Зарегистрируйте свой новый клиент () в качестве новой веб-платформы на консоли проекта

#appwrite

#appwrite

Вопрос:

Я использую appwrite/install для установки своего экземпляра appwrite. Во время установки я ввожу localhost для хоста, 8004 для HTTP и 8005 для HTTPS и моего домена для CNAME.

 docker run -it --rm     
--volume /var/run/docker.sock:/var/run/docker.sock     
--volume "$(pwd)"/appwrite:/install/appwrite:rw     
-e version=0.6.2     
appwrite/install
 

Все контейнеры запускаются и запускаются без каких-либо проблем, и я могу получить доступ к страницам входа и регистрации appwrite.

Я также использую отдельный экземпляр nginx для прокси-сервера всех запросов моего домена к appwrite. Я также могу опубликовать эту конфигурацию на случай, если это связано с проблемой.

Когда я создаю новую учетную запись, я получаю сообщение об ошибке Registration Failed. Please try again later в пользовательском интерфейсе и 403 Inavlid Origin. Register your new client (<domain>) as a new Web platform on your project console в консоли браузера.

По-видимому, appwrite не применил CNAME, который я ввел при установке. Что я делаю не так?

Ответ №1:

Ошибка 403 означает, что Appwrite не распознает этот веб-клиент и защищает вас от атаки [CSRF] [1].

Несколько вещей, установите _APP_DOMAIN и _APP_DOMAIN_TARGET как для вашего фактического доменного имени, так и для локального хоста.

Это должно заставить вас работать без прокси-сервера, с прокси-сервером вы должны убедиться, что он передает имя хоста на сервер Appwrite.

При использовании nginx в качестве прокси-сервера обязательно укажите [передать заголовок хоста][2]:

 proxy_set_header Host $host;
 

[1]: https://owasp.org/www-community/attacks/csrf#:~:text=Cross-Site Request Forgery (CSRF,which they’re currently authenticated
[2]: https://docs.nginx.com/nginx/admin-guide/web-server/reverse-proxy/#passing-request-headers