Skip to content

blitss/passport-telegram-strategy

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

passport-telegram-official

Build Coverage Quality Dependencies

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.

Install

$ npm install passport-telegram-official

or

$ yarn add passport-telegram-official

Usage

Create an Application

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

Configure Strategy

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);
    });
  }
));

Authenticate Requests

Set'up a route to receive requests

app.get('/auth/telegram',
  passport.authenticate('telegram'),
  function(req, res) {
    // Successful authentication, redirect home.
    res.redirect('/');
  });

Widget

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>

Examples

Start a server from example folder and go to home page. Note it won't work on localhost.

FAQ

Contributing

Tests

Isn't done yet.

$ make test

License

The MIT License