jargonsdev / jargonsdev/jargons.dev

Auth Feature - Fourth Iteration

Open
#30 1 comment 0 reactions 0 assignees View on GitHub
:arrow_upper_right: medium priority :sparkles: enhancement hacktoberfest
Dominant language
MDX
Stars
56
Forks
45
PR merge metrics
No merged PRs in 30d

Description

The third iteration of the auth feature should focus on enhancing the OAuth flow and adding a signout/disconnect feature.

This is a follow up to the initial iterations...

- First Iteration - https://github.com/babblebey/jargons.dev/pull/8
- Second Iteration - https://github.com/babblebey/jargons.dev/pull/28
- OAuth App type refactoring - https://github.com/babblebey/jargons.dev/pull/33

#### Tasks
1. **Store OAuth Flow State Object in Cookies:** Implement the todo that suggests storing the OAuth flow state object to cookies. This stored state should be compared with the `state` param returned from the GitHub OAuth flow in the `github/oauth/callback` handler to prevent CSRF attacks.

#### Related Files
- `github/oauth/callback.js`
- `lib/actions/do-auth.js`

#### Acceptance Criteria
- OAuth flow state object is stored in cookies and compared with the `state` param.
- Signout/disconnect feature is implemented and accessible through the `doAuth` action

#### Additional Notes
- Nothing much... just ask a question or share ideas, if you've got any 😉

Contributor guide

Open the contributing guide

Research direction

Start by reading github/oauth/callback.js and lib/actions/do-auth.js, then inspect the existing OAuth flow and its TODO for cookie storage. Done means the OAuth state is stored and compared with the returned state parameter, and signout/disconnect is available through doAuth; the issue does not name a test to run.

Written by the indexing model from the issue text.

Assessment

Tech stack
github, javascript, nodejs
Domain
authentication, backend
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.