This is related to ticket #1374, and simplifies the steps for local development environments to have a working login flow for github and google. The improvements were configuration for the client id and secret for google and github via .env vars instead of having to go through setting up "Social Applications" via the admin interface, and automating the process for creating google cloud projects in which oauth clients can be created. Documentation was adjusted to fit. That was as far as this could be automated given limitations on both Google Cloud Platform and Github's APIs for creating oauth clients/apps. The terraform process can be improved if these tickets see some progress or an API comes about to support this. Google https://github.com/hashicorp/terraform-provider-google/issues/16452 https://issuetracker.google.com/issues/116182848 Github https://github.com/integrations/terraform-provider-github/issues/786
2.8 KiB
Production/Staging Server setup for allauth
For development see development_setup_notes.md.
For this setup adjustments will need to be made to the values as applicable for each server and service.
Social Login with django-allauth
Follow these instructions to use the social logins through django-allauth.
See https://testdriven.io/blog/django-social-auth/ for more information.
Github
- Go to https://github.com/settings/applications/new and add a new OAuth application
- Set
http://localhost:8000as the Homepage URL - Set
http://localhost:8000/accounts/github/login/callback/as the Callback URL - Click whether you want to enable the device flow
- Log in to the admin
- Click on Social Applications
- Click Add Social Application
- Choose GitHub as the provider
- Enter a name like "GitHub OAuth Provider"
- Enter the Client ID from GitHub
- Go back to GitHub and generate a new Client Secret, then copy it into the Secret Key field. Choose the site as a Chosen sites and save.
It's ready!
Working locally: If you need to run through this flow multiple times, create a superuser so you can log into the admin. Then, log into the admin and delete your "Social Account" from the admin. This will test a fresh connection to GitHub for your logged-in GitHub user.
To test the flow including authorizing Github for the Boost account, log into your GitHub account settings and click Applications in the left menu. Find the "Boost" authorization and delete it. The next time you log into Boost with this GitHub account, you will have to re-authorize it.
More detailed instructions at:
https://docs.allauth.org/en/latest/socialaccount/providers/google.html
Go to https://console.developers.google.com/ and create a new project. Create OAuth 2.0 credentials.
The client id is the full value including domain and tld.
For the "authorized javascript origins" values use:
http://localhost:8000
For the "authorized redirect URIs" use:
http://localhost:8000/accounts/google/login/callback/http://localhost:8000/accounts/google/login/callback/?flowName=GeneralOAuthFlow