Passport strategy for authenticating with Feishu.
To learn more details about Feishu's OAuth strategy, please refer to its online docs (English version, Chinese version).
This project is an imitation of Jared Hanson's works, such as passport-facebook
and passport-google-oauth2
.
$ npm install passport-feishu
const FeishuStrategy = require('passport-feishu').Strategy;
passport.use(new FeishuStrategy({
clientID: FEISHU_APP_ID,
clientSecret: FEISHU_APP_SECRET,
callbackURL: "http://www.example.com/auth/feishu/callback",
appType: "public",
appTicket: "the-ticket-received-from-feishu-service"
},
function(accessToken, refreshToken, profile, cb) {
User.findOrCreate({ feishuUserId: profile.id }, function (err, user) {
return cb(err, user);
});
}
));
Use passport.authenticate()
, specifying the 'feishu'
strategy, to
authenticate requests.
For example, as route middleware in an Express application:
app.get('/auth/feishu',
passport.authenticate('feishu'));
app.get('/auth/feishu/callback',
passport.authenticate('feishu', { session: true, successReturnToOrRedirect: '/' })
);
Copyright (c) 2020 Jiamin Zhao