Configuring CORS Headers
While integrating OpenWISP with external services, you can run into issues related to CORS (Cross-Origin Resource Sharing). This role allows users to configure the CORS headers with the help of django-cors-headers package. Here's a short summary of how to do this:
Step 1: Install ansible
Step 2: Install this role
Step 3: Create inventory file
Step 4: Create a playbook file with following contents:
- hosts: openwisp2
become: "{{ become | default('yes') }}"
roles:
- openwisp.openwisp2
vars:
# Cross-Origin Resource Sharing (CORS) settings
openwisp2_django_cors:
enabled: true
allowed_origins_list:
- https://frontend.openwisp.org
- https://logs.openwisp.org
Note: to learn about the supported fields of the
openwisp2_django_cors
variable, look for the word
"openwisp2_django_cors" in the Role Variables section of this
document.
Step 5: Run the playbook
When the playbook is done running, if you got no errors you can login at https://openwisp2.mydomain.com/admin, with the following credentials:
username: admin
password: admin
The ansible-openwisp2 only provides abstraction (variables) for handful of
settings available in django-cors-headers module. Use the
openwisp2_extra_django_settings_instructions
or
openwisp2_extra_django_settings
variable to configure additional
setting of django-cors-headers
as shown in the following example:
- hosts: openwisp2
become: "{{ become | default('yes') }}"
roles:
- openwisp.openwisp2
vars:
openwisp2_django_cors:
enabled: true
allowed_origins_list:
- https://frontend.openwisp.org
- https://logs.openwisp.org
replace_https_referer: true
# Configuring additional settings for django-cors-headers
openwisp2_extra_django_settings_instructions:
- |
CORS_ALLOW_CREDENTIALS = True
CORS_ALLOW_ALL_ORIGINS = True