Files
website-v2/docs/non-dev-server-allauth-setup.md
daveoconnor 58b791eee2 Reduced steps for local development setup for social media auth (#1374) (#1383)
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
2024-10-30 11:31:34 -07:00

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:8000 as the Homepage URL
  • Set http://localhost:8000/accounts/github/login/callback/ as the Callback URL
  • Click whether you want to enable the device flow
The GitHub screen that registers a new OAuth app
  • Log in to the admin
  • Click on Social Applications
The Social Accounts section of the Django admin
  • 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.
Screenshot of where to get the Client ID and Client Secret

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.

The 'Authorized OAuth Apps' tab in your GitHub Applications

Google

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