UNPKG

expressjs-authenticate

Version:
1 lines 3.46 kB
module.exports=function(e){var r={};function t(o){if(r[o])return r[o].exports;var n=r[o]={i:o,l:!1,exports:{}};return e[o].call(n.exports,n,n.exports,t),n.l=!0,n.exports}return t.m=e,t.c=r,t.d=function(e,r,o){t.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:o})},t.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},t.t=function(e,r){if(1&r&&(e=t(e)),8&r)return e;if(4&r&&"object"==typeof e&&e&&e.__esModule)return e;var o=Object.create(null);if(t.r(o),Object.defineProperty(o,"default",{enumerable:!0,value:e}),2&r&&"string"!=typeof e)for(var n in e)t.d(o,n,function(r){return e[r]}.bind(null,n));return o},t.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(r,"a",r),r},t.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},t.p="",t(t.s=1)}([function(e,r){e.exports=require("passport")},function(e,r,t){e.exports=({loginRoute:e="/login",session:r=!1,...o})=>{if("string"!=typeof e)throw new Error("Unsupported value for loginRoute parameter.");if("boolean"!=typeof r)throw new Error("Unsupported value for session parameter.");const n=t(2)(o);return{setup:s=>{s.use(n.initialize()),s.use(e,t(7)({session:r,...o}))},requireAuth:n.authenticate("jwt",{session:r})}}},function(e,r,t){const o=t(3),n=t(0),s=t(4),i=t(5).Strategy,u=s.Strategy,a=s.ExtractJwt;e.exports=({secret:e,client:r,connection:s,userTable:p="Users",usernameField:c="username",passwordField:l="password"})=>{if(void 0===e)throw new Error("Unacceptable value for JWT secret");if(!["mysql","pg"].includes(r))throw new Error("Unsupported database client.");if(!s)throw new Error("Connection parameter not supplied.");if("object"==typeof s){if(!["host","user","password","database"].every(e=>Object.prototype.hasOwnProperty.call(s,e)))throw new Error("Connection object missing required properties.")}else if("string"!=typeof s)throw new Error("Unsupported type of connection.");if(!["username","email"].includes(c))throw new Error("Unsupported value for Passport LocalStrategy usernameField property.");if("string"!=typeof l)throw new Error("Unsupported passwordField type.");const f=t(6)({client:r,connection:s});return n.use(new i({usernameField:c,passwordField:l},(e,r,t)=>f(p).where(c,e).first().then(e=>e&&o.compareSync(r,e[l])?t(null,e):t(null,!1)).catch(e=>(console.log(e),t(e,!1))))),n.use(new u({jwtFromRequest:a.fromAuthHeaderAsBearerToken(),secretOrKey:e},({id:e},r)=>f(p).where({id:e}).first().then(e=>e?r(null,e):r(new Error("Unauthorized"),!1)))),n}},function(e,r){e.exports=require("bcrypt")},function(e,r){e.exports=require("passport-jwt")},function(e,r){e.exports=require("passport-local")},function(e,r){e.exports=require("knex")},function(e,r,t){const o=t(8).Router,n=t(0),s=t(9),i=o();e.exports=({secret:e,session:r=!1})=>{if(void 0===e)throw new Error("Unacceptable value for JWT secret");if("boolean"!=typeof r)throw new Error("Unsupported value for session parameter.");return i.post("/",(t,o,i)=>{n.authenticate("local",{session:r},(n,i,u)=>{if(n||!i)return o.status(400).json({error:u?u.message:"Login Failed"});t.login(i,{session:r},async r=>r?o.status(400).json({error:u?u.message:"Login Failed"}):(delete i.password,o.json({token:s.sign({...i},e,{expiresIn:"6h"}),user:i})))})(t,o,i)}),i}},function(e,r){e.exports=require("express")},function(e,r){e.exports=require("jsonwebtoken")}]);