Passport strategy for authenticating with Telegram using their Widget.
This module lets you authenticate using Telegram in your Node.js applications. By plugging into Passport, Telegram authentication can be easily and unobtrusively integrated into any application or framework that supports Connect-style middleware, including Express.
$ npm install passport-telegram-official
or
$ yarn add passport-telegram-official
Before using passport-telegram-official
, you must register your bot and get a API token. Read more about it on Telegram Documentation. Then you must set your domain using /setdomain
command sent to @BotFather
The Telegram authentication strategy authenticates users using a Telegram
account and Telegram own OAuth. That is simply. Just specify botToken
and verify
callback to complete authentication.
passport.use(new TelegramStrategy({
botToken: BOT_TOKEN
},
function(profile, cb) {
User.findOrCreate({ telegramId: profile.id }, function (err, user) {
return cb(err, user);
});
}
));
Set'up a route to receive requests
app.get('/auth/telegram',
passport.authenticate('telegram'),
function(req, res) {
// Successful authentication, redirect home.
res.redirect('/');
});
Generate widget here and paste code on your site. Like this:
<script async src="https://telegram.org/js/telegram-widget.js?2" data-telegram-login="YourBotName" data-size="medium" data-auth-url="/auth/telegram"></script>
Start a server from example
folder and go to home page. Note it won't work on localhost
.
Isn't done yet.
$ make test