npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

passport-line-v2

v3.0.0

Published

passport strategy for line

Readme

passport-line-v2

Passport strategy for login using line api (version 2). Some part of code is copies from https://www.npmjs.com/package/passport-line.

Pre-requisite

How to run example code

clone project

git clone https://github.com/piggyman007/passport-line-v2.git

modify some parameters at /example/index.js

const LINE_CHANNEL_ID = 'put your line channel id here'
const LINE_CHANNEL_SECRET = 'put your line channel secret here'
const CALLBACK_URL = 'your call back url' // e.g., https:www.somedomain.com or https://1.2.3.4
  • callback url cannot be localhost or 127.0.0.1
  • callback url must be https protocal
  • callback url must be the same value as specify in the Pre-requisite section

the example code is located at /example folder, goto it

cd example

install dependency modules

npm i

start app

npm start

the application will start on port 5000

Sample usage code

sample usage code below is from /example/index.js

/** decaration part */

// specify some parameters here
const LINE_CHANNEL_ID = 'put your line channel id here'
const LINE_CHANNEL_SECRET = 'put your line channel secret here'
const CALLBACK_URL = 'your call back url' // e.g., https:www.somedomain.com or https://1.2.3.4

// serialize and deserialize user
passport.serializeUser((user, done) => {
  done(null, user)
})

passport.deserializeUser(function(obj, done) {
  done(null, obj)
})

// set up passport using LineStrategy
passport.use(
  new passportLine.Strategy(
    {
      channelID: LINE_CHANNEL_ID,
      channelSecret: LINE_CHANNEL_SECRET,
      callbackURL: CALLBACK_URL,
    },
    (accessToken, refreshToken, profile, done) => {
      return done(null, profile)
    }
  )
)

/** set up express part */

// init passport
app.use(passport.initialize())
app.use(passport.session())

/** routes part */

// authenticate with line service
app.get('/auth/line', passport.authenticate(passportLine.NAME))

/**
 * line service will redirect to this callback api
 * if failed, goto /login
 * if pass, redirect to /
*/
app.get('/auth/line/callback',
  passport.authenticate(passportLine.NAME, { failureRedirect: '/login' }),
  (req, res) => {
    res.redirect('/')
  }
)

License

MIT