github-gatekeeper
v1.0.2
Published
now.sh stateless function for OAuth GitHub flow then exchange authorization code for a token
Downloads
1
Readme
OAuth GitHub Gatekeeper
API
Exchage temporary code for a token
GET /api/auth?code=<CODE>
OAuth Steps
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 }
Setup your Gatekeeper
Clone it
git clone [email protected]: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
Deploy on now.sh
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