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

Research authentication systems and select one #32

Open
digable1 opened this issue Jan 15, 2025 · 4 comments
Open

Research authentication systems and select one #32

digable1 opened this issue Jan 15, 2025 · 4 comments
Assignees
Labels
in progress This item is currently being addressed by team security ACL, identification/authorization considerations task
Milestone

Comments

@digable1
Copy link
Contributor

Task Description
We want to know what authentication we need for this app and what libraries can contribute to resolving how we do this.

Make sure our selection can address:

  1. Role management
    1. Users
    2. Managers

Technical Considerations
Include any technical considerations including architecture (e.g. API), required libraries, etc.

@digable1 digable1 added task security ACL, identification/authorization considerations labels Jan 15, 2025
@digable1 digable1 assigned bobbygrdn and chef-louis and unassigned bobbygrdn Jan 16, 2025
@digable1 digable1 added the in progress This item is currently being addressed by team label Jan 16, 2025
@digable1 digable1 added this to the Sprint 2 milestone Jan 16, 2025
@chef-louis
Copy link
Contributor

Okay it requires some additional setup but it does look like Supabase allows for Role-Based Access Controls (RBAC).

Supabase also provides some out-of-the-box authentication UI components, or we can roll our own and interact with the Supabase client to initiate sign-in, sign-up, sign-out, account recovery, etc.

We haven't pinned down the designs for the authentication flow yet so my intent is to try out the provided UI components and see if we can repurpose those for our authentication flow alongside RBAC.

@chef-louis
Copy link
Contributor

Upon further investigation, the provided authentication UI components are no longer maintained as of early 2023 so I went with testing a build-your-own approach which works for general user sign-up, sign-in, and sign-out.

That said, the next requirement is also to incorporate RBAC which requires leverage Custom Claims using an Auth Hook that we build ourselves. This hook allows for JWT access tokens to be annotated with the user role info that our server and/or client can decode to access the role level information as well as any permissions that we would like to set with that. This is the next up on the docket to figure out for the broader authentication story.

@digable1
Copy link
Contributor Author

@chef-louis - did you look at https://github.com/chingu-voyages/voyage-project-tier3-menu-scheduler?tab=readme-ov-file#functionality? Under the "Authentication" section, they suggest Google or Github OAuth

@chef-louis
Copy link
Contributor

chef-louis commented Jan 21, 2025

@chef-louis - did you look at https://github.com/chingu-voyages/voyage-project-tier3-menu-scheduler?tab=readme-ov-file#functionality? Under the "Authentication" section, they suggest Google or Github OAuth

I was thinking of implementing Google OAuth using Supabase as well since it looks like their Authentication package supports OAuth as well.

EDIT: Ah I see that I also need to enable this on the Google side which is what the resource link was walking through. Very helpful, thanks @digable1.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
in progress This item is currently being addressed by team security ACL, identification/authorization considerations task
Projects
None yet
Development

No branches or pull requests

3 participants