Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

BNGP-5491: Implement OAuth authentication #896

Draft
wants to merge 17 commits into
base: master
Choose a base branch
from

Conversation

StuAA78
Copy link
Collaborator

@StuAA78 StuAA78 commented Oct 9, 2024

https://eaflood.atlassian.net/browse/BNGP-5491

This is a straightforward OAuth implementation using native JS. We're only authenticating the server with the backend API, and we've been advised that a simple token request is fine (ie. there's no need to use refresh tokens). Therefore we don't need all the additional code, dependencies etc. of a library when native code will work fine.

The following environment variables need to be set (eg. by adding them to docker/WEBAPP_ENV if running locally)

OAUTH_CLIENT_ID
OAUTH_SCOPE
OAUTH_SECRET
OAUTH_TENANT_ID
USE_OAUTH (set as true if OAuth is to be used)

This implementation replaces wreck.get (which is being used in the one place where authentication is needed) with getWithAuth(). This handles fetching an auth token or using a cached one if it hasn't yet expired; and will then execute the required wreck.get request (and will fetch a new token and retry if the request comes back unauthorised).

Note that this implementation does not pass through any additional options to the wreck.get request; as it's only used in one place at present this isn't required. It will need to be expanded in future if this is required.

@StuAA78 StuAA78 changed the title BNGP-5491: OAuth authentication spike BNGP-5491: Implement OAuth authentication Oct 31, 2024
Copy link

Quality Gate Failed Quality Gate failed

Failed conditions
86.5% Coverage on New Code (required ≥ 90%)

See analysis details on SonarCloud

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant