[![npm-version]][npm] [![test-ci-img]][test-ci-url] [![test-cov-img]][test-cov-url] [![snyk-vulnerabilities]][snyk]
OAuth Proxy
23andme | 500px | acton | acuityscheduling | adobe | aha | alchemer | amazon | angellist | apple | arcgis | asana | assembla | atlassian | auth0 | authentik | authentiq | authing | autodesk | aweber | axosoft | baidu | basecamp | battlenet | beatport | bitbucket | bitly | box | buffer | campaignmonitor | cas | cheddar | clio | cognito | coinbase | concur | constantcontact | coursera | crossid | dailymotion | deezer | delivery | deputy | deviantart | digitalocean | discogs | discord | disqus | docusign | dribbble | dropbox | ebay | echosign | ecwid | edmodo | egnyte | etsy | eventbrite | evernote | eyeem | facebook | familysearch | feedly | figma | fitbit | flickr | formstack | foursquare | freeagent | freelancer | freshbooks | fusionauth | garmin | geeklist | genius | getbase | getpocket | gitbook | github | gitlab | gitter | goodreads | google | groove | gumroad | harvest | hellosign | heroku | homeaway | hootsuite | huddle | ibm | iconfinder | idme | idonethis | imgur | infusionsoft | instagram | intuit | jamendo | jumplead | kakao | keycloak | line | linkedin | live | livechat | logingov | lyft | mailchimp | mailup | mailxpert | mapmyfitness | mastodon | medium | meetup | mendeley | mention | microsoft | mixcloud | moxtra | myob | naver | nest | netlify | nokotime | notion | nylas | okta | onelogin | openstreetmap | optimizely | osu | patreon | paypal | phantauth | pinterest | plurk | podio | procore | producthunt | projectplace | pushbullet | qq | ravelry | redbooth | reddit | runkeeper | salesforce | sellsy | shoeboxed | shopify | skyrock | slack | slice | smartsheet | smugmug | snapchat | snowflake | socialpilot | socrata | soundcloud | spotify | square | stackexchange | stocktwits | stormz | storyblok | strava | stripe | surveymonkey | surveysparrow | thingiverse | ticketbud | tiktok | timelyapp | todoist | trakt | traxo | trello | tripit | trustpilot | tumblr | twitch | twitter | typeform | uber | unbounce | underarmour | unsplash | untappd | upwork | uservoice | vend | venmo | vercel | verticalresponse | viadeo | vimeo | visualstudio | vk | wechat | weekdone | weibo | withings | wordpress | workos | wrike | xero | xing | yahoo | yammer | yandex | zendesk | zoom
Express
var express = require('express')
var session = require('express-session')
var grant = require('grant').express()
var app = express()
// REQUIRED: any session store - see /examples/handler-express
app.use(session({secret: 'grant'}))
// mount grant
app.use(grant({/*configuration - see below*/}))
Koa
var Koa = require('koa')
var session = require('koa-session')
var grant = require('grant').koa()
var app = new Koa()
// REQUIRED: any session store - see /examples/handler-koa
app.keys = ['grant']
app.use(session(app))
// mount grant
app.use(grant({/*configuration - see below*/}))
Hapi
var Hapi = require('hapi')
var yar = require('yar')
var grant = require('grant').hapi()
var server = new Hapi.Server()
server.register([
// REQUIRED: any session store - see /examples/handler-hapi
{plugin: yar, options: {cookieOptions: {password: 'grant', isSecure: false}}},
// mount grant
{plugin: grant({/*configuration - see below*/})}
])
Fastify
var fastify = require('fastify')
var cookie = require('@fastify/cookie')
var session = require('@fastify/session')
var grant = require('grant').fastify()
fastify()
.register(cookie)
.register(session, {secret: 'grant', cookie: {secure: false}})
.register(grant({/*configuration - see below*/}))
AWS Lambda
var grant = require('grant').aws({
config: {/*configuration - see below*/}, session: {secret: 'grant'}
})
exports.handler = async (event) => {
var {redirect, response} = await grant(event)
return redirect || {
statusCode: 200,
headers: {'content-type': 'application/json'},
body: JSON.stringify(response)
}
}
Azure Function
```js var grant = require('grant').azure({ config: {/configuration - see below/}, session: {secret: 'grant'} })
module.exports = async (context, req) => { var {redirect, response} = await gran
$ claude mcp add grant \
-- python -m otcore.mcp_server <graph>