Cover image

Django Origin checking failed does not match any trusted origins.

If you came across this error on Django e.g. when trying to log into the admin

Origin checking failed - https://david.dev does not match any trusted origins.

In general, this can occur when there is a genuine Cross Site Request Forgery, or when Django’s CSRF mechanism has not been used correctly. For POST forms, you need to ensure:

* Your browser is accepting cookies.
* The view function passes a request to the template’s render method.
* In the template, there is a {% csrf_token %} template tag inside each POST form that targets an internal URL.
* If you are not using CsrfViewMiddleware, then you must use csrf_protect on any views that use the csrf_token template tag, as well as those that accept the POST data.
* The form has a valid CSRF token. After logging in in another browser tab or hitting the back button after a login, you may need to reload the page with the form, because the token is rotated after a login.

It means that you are probably running Django 4 without CSFR trusted origins in your `settings.py` file so all you have to do is add this line:

CSRF_TRUSTED_ORIGINS = ['https://*.yourdomain.com']

More information can be found in the Django documentation.

made with ♥️ © david.dev 2023 | RSS Feed