All files / lib/middlewares accessTokenParser.ts

15.38% Statements 2/13
0% Branches 0/2
25% Functions 1/4
15.38% Lines 2/13

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31          16x     16x                                            
import { Express } from 'express'
import Crowi from 'server/crowi'
import Debug from 'debug'
import { parseAccessToken } from '../util/accessTokenParser'
 
const debug = Debug('crowi:middlewares:accessTokenParser')
 
export default (crowi: Crowi, app: Express) => {
  return (req, res, next) => {
    const accessToken = parseAccessToken(req)
    if (!accessToken) {
      return next()
    }
 
    const User = crowi.model('User')
 
    debug('accessToken is', accessToken)
    User.findUserByApiToken(accessToken)
      .then(function(userData) {
        req.user = userData
        req.skipCsrfVerify = true
        debug('Access token parsed: skipCsrfVerify')
 
        next()
      })
      .catch(function(err) {
        next()
      })
  }
}