-
Exchage temporary code for a token
GET /api/auth?code=<CODE>
Also see the documentation on Github.
-
Redirect users to request GitHub access.
GET https://github.com/login/oauth/authorize
-
GitHub redirects back to your site including a temporary code you need for the next step.
You can grab it like so:
const params = new URLSearchParams(location.search) const code = params.get('code')
-
Request the actual token using your instance of Gatekeeper, which knows your
OAUTH_CLIENT_SECRET
.const GITHUB_GATEKEEPER_URL = process.env.NODE_ENV === 'development' ? 'http://localhost:3000/api/auth' : 'https://gatekeeper.YOUNAME.now.sh/api/auth' const url = new URL(GITHUB_GATEKEEPER_URL) url.searchParams.set('code', code) try { const res = await fetch(url) if (res.ok) { const {token} = await res.json() console.log(token) } } catch (e) { // bad code }
-
Clone it
git clone git@github.com:kobzarvs/github-gatekeeper.git
-
Install Dependencies
cd gatekeeper && yarn
-
Run local dev environment
First of all you must create
.env
file:OAUTH_CLIENT_SECRET=<OAUTH_CLIENT_SECRET> OAUTH_CLIENT_ID=<OAUTH_CLIENT_ID>
now dev
-
Add secrets env variables
now secrets add OAUTH_CLIENT_SECRET <OAUTH_CLIENT_SECRET> now secrets add OAUTH_CLIENT_ID <OAUTH_CLIENT_ID>
-
Deploy service
now