How to refresh passport.js generated access token for basecamp?

348 Views Asked by At

I am using passportjs Oauth for authentication, getting access token and refresh token in response.

The problem is that the access token gets expire after 14 days.So the authentication gets failed after 14 days.

I want to know how to update access token using Refresh Token using Basecamp API?

const BasecampStrategy = require('passport-basecamp').Strategy;
const basecampUser = require('../models/basecampUser');
const passport = require('passport');
const keys = require('./keys');

passport.serializeUser(function (user, done) {
    done(null, user);
});
passport.deserializeUser(function (user, done) {
    done(null, user);
});

const passportConfig = {
    clientID: keys.basecamp_dev.clientID,
    clientSecret: keys.basecamp_dev.clientSecret,
    callbackURL: '/auth/basecamp/callback'
};
passport.use(
    new BasecampStrategy(passportConfig, (accessToken, refreshToken, profile, done) => {


        db_schema.findOne({ basecampId: profile.id }).then((currentUser) => {
            if (currentUser) {
                done(null, currentUser);
            } else {
                new basecampUser({
                    //
                                         Some feild
                                         ............
                                       //
                })
                    .save()
                    .then((newUser) => {
                        done(null, newUser);
                    });
            }
        });

    })
);

0

There are 0 best solutions below