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