passport-eveonline
Passport strategy for authenticating with EVE Online using the OAuth 2.0 API.
This module lets you authenticate using EVE Online in your node.js applications. By plugging into Passport, EVE Online authentication can be easily and unobtrusively integrated into any application or framework that supports Connect-style middleware, including Express.
Install
$ npm install passport-eveonline
Usage
Configure Strategy
The EVE Online authentication strategy authenticates users with an active
EVE Online account using OAuth 2.0 tokens. The strategy requires a verify
callback, which receives information about the character who authenticated.
The verify
callback must call done
providing an object used to complete
authentication.
In order to identify your application to EVE Online, first start by creating
an application on the
EVE Developer's website.
When you create an application, you must provide a Callback URL
which EVE
Online will redirect to once your user has authenticated.
Once you create your application on the EVE Developer's website, you will be
provided with a Client ID
and a Secret Key
. When you construct a new
instance of the strategy, you should provide the Client ID
and Secret ID
provided to you along with your Callback URL
within options
.
All of the information provided in characterInformation
parameter to the
verify
callback is documented the EVE Developer's website under the
Single Sign-On (SSO) section.
Here's an example of how to construct and configure the strategy:
passport.use(new EveOnlineStrategy({
clientID: EVEONLINE_CLIENT_ID,
secretKey: EVEONLINE_SECRET_KEY,
callbackURL: "http://mysite.com/auth/eveonline/callback"
},
function(characterInformation, done) {
User.findOrCreate(
{ characterID: characterInformation.characterID },
function (err, user) {
return done(err, user);
}
);
}
));
- Note: The authentication token and refresh token are not provided because in the initial release of the EVE Online SSO API does not provide any other API calls other than authentication. Refreshing tokens is also not possible.
You may also override the default authorization, token, and verify URLs by providing them in the options:
passport.use(new EveOnlineStrategy({
...
authorizationURL: 'https://some.other.url.com/auth',
tokenURL: 'https://some.other.url.com/token',
verifyURL: 'https://some.other.url.com/verify'
...
}))
...
Authenticate Requests
Use passport.authenticate()
, specifying the 'eveonline'
strategy, to
authenticate requests.
For example, as route middleware in an Express application:
app.get('/auth/eveonline',
passport.authenticate('eveonline'));
app.get('/auth/eveonline/callback',
passport.authenticate('eveonline', {
successRedirect: '/',
failureRedirect: '/login'
})
);
Tests
npm install
npm test
Credits
License
Copyright (c) 2014 Mike Brennan