Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/mathieutu/lvconnect-passport
LVConnect authentication strategy for Passport and Node.js.
https://github.com/mathieutu/lvconnect-passport
Last synced: about 19 hours ago
JSON representation
LVConnect authentication strategy for Passport and Node.js.
- Host: GitHub
- URL: https://github.com/mathieutu/lvconnect-passport
- Owner: mathieutu
- License: mit
- Created: 2019-01-13T21:42:18.000Z (almost 6 years ago)
- Default Branch: master
- Last Pushed: 2021-07-02T04:17:05.000Z (over 3 years ago)
- Last Synced: 2024-11-05T16:57:56.533Z (about 2 months ago)
- Language: JavaScript
- Size: 291 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 13
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE.md
Awesome Lists containing this project
README
# LVConnect Passport
[Passport](http://passportjs.org/) strategy for authenticating with [LVConnect](https://gitlab.com/LinkValue/Lab/LVConnect/LvConnect)
using the OAuth 2.0 API.This module lets you authenticate using LVConnect in your Node.js applications.
By plugging into Passport, LVConnect authentication can be easily and
unobtrusively integrated into any application or framework that supports
[Connect](http://www.senchalabs.org/connect/)-style middleware, including
[Express](http://expressjs.com/).[Linkvalue](https://link-value.fr) is a french web/mobile agency.
**This package is an internal tool. You can download it and use it as an example for making your own, but it will be unusable if you're not a Linkvalue partner.**
## Install
```bash
$ npm install lvconnect-passport
```## Usage
#### Create an Application
Before using `lvconnect-passport`, you must register an application with LVConnect.
If you have not already done so, a new application can be created at
[developer applications](https://lvconnect.com/settings/applications/new) within
LVConnect's settings panel. Your application will be issued a client ID and client
secret, which need to be provided to the strategy. You will also need to
configure a callback URL which matches the route in your application.#### Configure Strategy
The LVConnect authentication strategy authenticates users using a LVConnect account
and OAuth 2.0 tokens. The client ID and secret obtained when creating an
application are supplied as options when creating the strategy. The strategy
also requires a `verify` callback, which receives the access token and optional
refresh token, as well as `profile` which contains the authenticated user's
LVConnect profile. The `verify` callback must call `cb` providing a user to
complete authentication.```js
const LVConnectStrategy = require('lvconnect-passport');passport.use(new LVConnectStrategy({
clientID: LVCONNECT_CLIENT_ID,
clientSecret: LVCONNECT_CLIENT_SECRET,
callbackURL: "/auth/lvconnect/callback"
},
function(accessToken, refreshToken, profile, done) {
User.findOrCreate({ lVConnectId: profile.id }, function (err, user) {
return done(err, user);
});
}
));
```#### Authenticate Requests
Use `passport.authenticate()`, specifying the `'lvconnect'` strategy, to
authenticate requests.For example, as route middleware in an [Express](http://expressjs.com/)
application:```js
app.get('/auth/lvconnect',
passport.authenticate('lvconnect'));app.get('/auth/lvconnect/callback',
passport.authenticate('lvconnect', { failureRedirect: '/login' }),
function(req, res) {
// Successful authentication, redirect home.
res.redirect('/');
});
```## Examples
Developers using the popular [Express](http://expressjs.com/) web framework can
refer to an [example](https://github.com/passport/express-4.x-facebook-example)
as a starting point for their own web applications. The example shows how to
authenticate users using Facebook. However, because both Facebook and LVConnect
use OAuth 2.0, the code is similar. Simply replace references to Facebook with
corresponding references to LVConnect.## License
This LVConnect Passport package is an open-sourced software licensed under the MIT license.
## Contributing
Issues and PRs are obviously welcomed and encouraged, for new features as well as documentation.