jwt refresh token

/**
@description for module commonjs
*/

// JWT MIDDLEWARE
const jwt = require('jsonwebtoken')
const { message } = require('../utils/util.message')
 
module.exports = (req, res, next) => {
  try {
    const tokenHeader = req.headers.authorization.split('Bearer ')[1]
    const decoded = jwt.verify(tokenHeader, process.env.ACCESS_TOKEN_SECRET)
    req.user = decoded
    next()
  } catch (err) {
    next(httpError(401))
  }
}
 
// ROUTE LOGIN
app.get('/protect', authJwt, (req, res) => {
  console.log(req.user)
  res.send('aim in proteced route')
})
 
app.post('/login', (req, res) => {
  const bodyPayload = {
    id: Date.now(),
    username: req.body.username
  }
  const token = signAccessToken(res, bodyPayload)
  return res.status(200).json(token)
})
 
app.post('/refresh-token', (req, res) => {
  const refreshToken = signRefreshToken(req)
  return res.status(200).json(refreshToken)
})
 
// JWT HELPER
const jwt = require('jsonwebtoken')
const { message } = require('../utils/util.message')
 
exports.signAccessToken = (res, payload) => {
  try {
    if (payload) {
      const accessToken = jwt.sign({ ...payload }, process.env.ACCESS_TOKEN_SECRET, { expiresIn: '1d' })
      const refreshToken = jwt.sign({ ...payload }, process.env.REFRESH_TOKEN_SECRET, { expiresIn: '90d' })
      res.cookie('refreshToken', `${refreshToken}`, { maxAge: 86400 * 90, httpOnly: true })
      return { accessToken, refreshToken }
    }
  } catch (err) {
    message({
      response: res,
      statusCode: 401,
      method: req.method,
      message: 'Unautorization'
    })
  }
}
 
exports.signRefreshToken = (req) => {
  try {
    const getToken = req.cookies.refreshToken
    if (getToken) {
      const { id, username } = jwt.verify(getToken, process.env.REFRESH_TOKEN_SECRET)
      const accesssToken = jwt.sign({ id, username }, process.env.ACCESS_TOKEN_SECRET, { expiresIn: '90d' })
      return { accesssToken }
    }
  } catch (err) {
    message({
      response: res,
      statusCode: 401,
      method: req.method,
      message: 'Unautorization'
		})
  }
}

4.75
4
Brettu 90 points

                                    /**
@description for module esm, change userDTO with your DTO
*/

import { Request, Response } from 'express'
import jwt, { Secret } from 'jsonwebtoken'
import { Base64 } from 'js-base64'
import { UsersDTO } from './../dto/users'
import { message } from '../utils/util.message'

const ACCESS_TOKEN_SECRET: Secret = process.env.ACCESS_TOKEN_SECRET
const REFRESH_TOKEN_SECRET: Secret = process.env.REFRESH_TOKEN_SECRET

export const signAccessToken = (res: Response, payload: UsersDTO): string | any => {
	try {
		if (payload) {
			const accessToken: string = jwt.sign({ ...payload }, ACCESS_TOKEN_SECRET, { expiresIn: '1d' })
			const refreshToken: string = jwt.sign({ ...payload }, REFRESH_TOKEN_SECRET, { expiresIn: '90d' })

			const encodedAccessToken: string = Base64.encode(accessToken)
			const encodedRefreshToken: string = Base64.encode(refreshToken)

			res.cookie('refreshToken', `${encodedRefreshToken}`, { maxAge: 86400 * 90, httpOnly: true })

			return { accessToken: encodedAccessToken, refreshToken: encodedRefreshToken }
		}
	} catch (err) {
		return message({
          response: res,
          statusCode: 401,
          method: req.method,
          message: 'Unautorization'
		})
	}
}

export const signRefreshToken = () => (req: Request): string | any => {
	try {
		const getToken: string = req.cookies['refreshToken']

		if (Base64.isValid(getToken) && getToken) {
			const decodedToken: string = Base64.decode(getToken)

			const { user_id, email }: string | any = jwt.verify(decodedToken, REFRESH_TOKEN_SECRET)
			const accessToken: string = jwt.sign({ user_id: user_id, email: email }, ACCESS_TOKEN_SECRET, {
				expiresIn: '90d'
			})

			const encodedAccessToken: string = Base64.encode(accessToken)
			return encodedAccessToken
		}
	} catch (err) {
		message({
          response: res,
          statusCode: 401,
          method: req.method,
          message: 'Unautorization'
		})
	}
}

4.75 (4 Votes)
0
3.67
3
Cyker 130 points

                                    import { Request, Response } from 'express'
import jwt, { Secret, SignOptions } from 'jsonwebtoken'
import { Base64 } from 'js-base64'
import { UsersDTO } from '../dto/dto.users'

const ACCESS_TOKEN_SECRET: Secret = process.env.ACCESS_TOKEN_SECRET
const REFRESH_TOKEN_SECRET: Secret = process.env.REFRESH_TOKEN_SECRET

export const signAccessToken = () => (res: Response, payload: UsersDTO, options: SignOptions): string | any => {
	if (!payload) {
		return null
	} else {
		const accessToken: string = jwt.sign({ ...payload }, ACCESS_TOKEN_SECRET, { ...options })
		const refreshToken: string = jwt.sign({ ...payload }, REFRESH_TOKEN_SECRET, { expiresIn: '90d' })

		const encodedAccessToken: string = Base64.encode(accessToken)
		const encodedRefreshToken: string = Base64.encode(refreshToken)

		res.cookie('refreshToken', `${encodedRefreshToken}`, { maxAge: 86400 * 90, httpOnly: true })

		return { accessToken: encodedAccessToken, refreshToken: encodedRefreshToken }
	}
}

export const verifySignAccessToken = () => (token: string): string | any => {
	if (!Base64.isValid(token)) {
		return null
	} else {
		const decodedToken: string = Base64.decode(token)
		const decoded: string | any = jwt.verify(decodedToken, ACCESS_TOKEN_SECRET)
		return decoded
	}
}

export const signRefreshToken = () => (req: Request): string | any => {
	const getToken: string = req.cookies.refreshToken

	if (!Base64.isValid(getToken) && !getToken) {
		return null
	} else {
		const decodedToken: string = Base64.decode(getToken)

		const { user_id, email }: string | any = jwt.verify(decodedToken, REFRESH_TOKEN_SECRET)
		const accessToken: string = jwt.sign({ user_id: user_id, email: email }, ACCESS_TOKEN_SECRET, {
			expiresIn: '90d'
		})

		const encodedAccessToken: string = Base64.encode(accessToken)
		return encodedAccessToken
	}
}

3.67 (3 Votes)
0
Are there any code examples left?
Create a Free Account
Unlock the power of data and AI by diving into Python, ChatGPT, SQL, Power BI, and beyond.
Sign up
Develop soft skills on BrainApps
Complete the IQ Test
Relative searches
jwt token refresh token when to refresh a jwt token token and refresh token handle jwt and refresh tokens with jwt why we need refresh token on JWT java why we need refresh token on JWT auto refresh token jwt refresh status token jwt how to refresh the jwt token what is access token and refresh token in jwt point of refresh token in jwt can you decode jwt refresh token jwt refresh token modify refresh token jwt modify jwt com refresh token jwt revoke refresh token handle jwt and refresh token creating an access and refresh token with jwt generate jwt access token and refresh token how to use refresh token to get access token jwt Refresh token in jwt explained What is refresh token in JWT and how to save it refresh token jwt vs access token jwt token vs refresh token refresh jwt token sdk refresh token jwt how to make refreshtoken in jwt refresh and access token jwt jwt auto refresh vs refresh token refresh jwt auth token when to know refresh jwt token refresh tokens jwt jwt token lost after refresh jwt use the refresh token and generate token jwt auto refresh token jwt why refresh token refresh token payload jwt-auth refresh life jwt authentication refresh token tutorial jwt bearer refresh token hot to refresh my jwt token in client wha is refresh token jwt what is inside of refresh token jwt what must be in refresh token jwt where to store refresh token jwt jwt refresh token when to use refresh token jwt token jwt refresh token does it stay the same jwt authentication refresh and access token jwt authentication refresh token refresh jwt in javascript tymon jwt refresh token how jwt refresh token works how to refresh token jwt what is refreshtoken jwt jwt refresh token implementation javascript can refresh token be used in place of jwt token? refresh jwt token in backend simple jwt send refresh token jwt refresh token decode JWT refresh token example java how to renew refresh token JWT? how to refresh refresh token JWT? jwt access token and refresh token app refresh jwt token jwt refresh token workflow jwt refresh tokens jwt token with refresh token why do we need jwt refresh token jwt refresh token explained bezkoder jwt refresh token implement refresh token jwt koa js jwt refreshing token storing jwt refresh token jwt refreshtoken reduis why refresh token is used jwt jwt refresh token javascript refresh page jwtauth jwt auth reload page jwt refresh token code boot jwt refresh token code jwt why use refresh token jwt refresh token java refreshing jwt tokens refresh token in jwt how to implement web api jwt refresh token Authentication Using JWT and Refresh Token when page refresh jwt token refresh SHOULD I USE REFESH TOKEN JWT generate refresh token jwt generate a jwt refresh token what is the need of refesh token in jwt refresh token re authentication# jwt example refresh token jwt example jwt refresh token gesdinet jwt refresh token access token work with jwt and refresh token refresh jwt secret refreshtoken jwt what are jwt refresh tokens jwt access token refresh token jwt refresh and access token access and refresh token jwt refresh jwt token js refresh jwt token js jwt token after browser tab close then create refresh token or jwt jwt generate refresh token echo jwt refresh token how to use jwt refresh token jwt access and refresh token refresh page when jwt tokens expire when we need to refresh jwt token refreshing token jwt what is jwt refreshToken for jwt login with refresh token jwt do i need refresh token refresh token and access token jwt jwt get refresh token on login how to refresh JWT handling JWTs refresh how to refresh jwt example creating a refresh token jwt medium how jwt token & Refresh token works in web api what means Refresh a token jwt jwt refresh token pattern jwt auth refresh token use of refresh token in jwt simple jwt refresh token how to refresh token ho to use refresh token jwt refresh token vs access token jwt refresh token vs jwt how tu use refresh token how to use access token and refresh token jwt what refresh token does jwt refresh token javascript how to generate refresh token jwt are refresh tokens required for JWT simple jwt how to refresh token auth0 check refresh token jwt jwt send refresh token is refresh token a jwt jwt token auto refresh refresh jwt tokens do i need refresh tokens with jwts should i use token refresh in jwt jwt refresh token logout create refresh token jwt Access token and refresh token (JWT) why do we need refresh token for jwt auth JWT where to store refresh token automatically refresh jwt token should a JWT refresh token be stored on the client jwt without refresh token use jwt to refresh token how to refresh jwt token automatically refresh jwt javascript where to store jwt refresh token jwt token refresh jwt refresh token implementation jwtauth how to get refresh token what is my refresh token jwt how to use jwt.refresh jwtauth how to refresh token jwt how to refresh token jwt when to refresh token jsonwebtoken refresh token jwt refresh token client side how to send refresh jwt token jwt authentication with refresh tokens jwt refresh token mern json web token refresh update jwt token node js jwt refresh token when to refresh jwt token how to use refresh token jwt persisting jwt token on refresh spring security jwt refresh token jwt use same refresh token is it safe to use jwt for refresh token jwt token and refresh token jwt refresh token required refresh token json refresh token for jwt jwt refreshtoken secure jwt refresh token axios refresh token jwt refresh token header ExpiredJwtToken: E_JWT_TOKEN_EXPIRED: The jwt token has been expired. Generate a new one to continue access token vs refresh token jwt jwt auth refresh jwt refresh token online how refresh token works in jwt jwt and refresh tokens where should we store access token and refresh token token and refresh token in the browser when should i create a new refresh token jwt jwt can a user have multple refresh tokens to get access and refresh token at once in jwt jwt access token and refresh token working jwt authentication refresh how it works implement refresh token jwt reactjs refresh tokens jwt expiry date create refresh token io.jsonwebtoken.Jwts expiration and renovation of jwt cookies setting jwt refresh token as cookie http jwt keepalive what is refresh token jwt what is refresh token in jwt jwt refresh jwt with refresh token jwt auth and refresh token example json web token expires in minutes how to handle jwt token decode jwt refresh token using refresh tokens in JWT best way to store refresh token does refrsh token need to be a jwt refresh token in jwt refresh jwt token refresh jwt how to send access and refresh token jwt refresh jwt token jwt referesh token get new token with refresh token jwt react refresh token jwt node jwt refresh token example what is refreh token for in jwt what is a jwt refresh token jwt.refresh what are refresh tokens nodejs jwt auth token refresh logic jwt vs refresh ans access tokens how to use refresh token in jwt how does jwt refresh token work? what is jwt refresh token refresk token jwt how to refresh jwt token implement refresh token jwt refresh token with jwt jwt refresh token example refresh token and access token in jwt how to create refresh token in jwt jwt sign in and refresh token jwt refresh token authentication access token and refresh token jwt how to refresh token in jwt jwt access token and refresh token should refresh token be jwt also? refresh token jwt refresh token (jwt) jwt refresh token
Made with love
This website uses cookies to make IQCode work for you. By using this site, you agree to our cookie policy

Welcome Back!

Sign up to unlock all of IQCode features:
  • Test your skills and track progress
  • Engage in comprehensive interactive courses
  • Commit to daily skill-enhancing challenges
  • Solve practical, real-world issues
  • Share your insights and learnings
Create an account
Sign in
Recover lost password
Or log in with

Create a Free Account

Sign up to unlock all of IQCode features:
  • Test your skills and track progress
  • Engage in comprehensive interactive courses
  • Commit to daily skill-enhancing challenges
  • Solve practical, real-world issues
  • Share your insights and learnings
Create an account
Sign up
Or sign up with
By signing up, you agree to the Terms and Conditions and Privacy Policy. You also agree to receive product-related marketing emails from IQCode, which you can unsubscribe from at any time.
Creating a new code example
Code snippet title
Source