Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import * as jwt from 'jsonwebtoken';
- export class Jwt {
- private secretKey = 'xxa94c1883329b47babf53df568c11d26569290c912a54d6bf884136e3ef4d120e';
- sign(playload: any) {
- let token = jwt.sign(playload, this.secretKey, {
- expiresIn: '1d'
- });
- return token;
- }
- verify(token: string) {
- return new Promise((resolve, reject) => {
- jwt.verify(token, this.secretKey, (err, decoded) => {
- if (err) {
- reject(err)
- } else {
- resolve(decoded)
- }
- });
- });
- }
- }
- ////////////////////
- // app.ts //
- require('dotenv').config();
- import { MySqlConnectionConfig } from 'knex';
- import Knex = require('knex');
- import { Jwt } from './models/jwt';
- const jwt = new Jwt();
- let checkAuth = (req, res, next) => {
- let token: string = null;
- if (req.headers.authorization && req.headers.authorization.split(' ')[0] === 'Bearer') {
- token = req.headers.authorization.split(' ')[1];
- } else if (req.query && req.query.token) {
- token = req.query.token;
- } else {
- token = req.body.token;
- }
- jwt.verify(token)
- .then((decoded: any) => {
- req.decoded = decoded;
- next();
- }, err => {
- return res.send({
- ok: false,
- error: 'No token provided.',
- code: 403
- });
- });
- }
- // MySQL Connection
- let connection: MySqlConnectionConfig = {
- host: process.env.DB_HOST,
- port: process.env.DB_PORT,
- database: process.env.DB_NAME,
- user: process.env.DB_USER,
- password: process.env.DB_PASSWORD,
- multipleStatements: true,
- debug: false
- }
- let db = Knex({
- client: 'mysql',
- connection: connection
- });
- app.use((req, res, next) => {
- req.db = db;
- next();
- });
- //
Add Comment
Please, Sign In to add comment