#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