本文整理匯總了TypeScript中passport-jwt.ExtractJwt.fromHeader方法的典型用法代碼示例。如果您正苦於以下問題:TypeScript ExtractJwt.fromHeader方法的具體用法?TypeScript ExtractJwt.fromHeader怎麽用?TypeScript ExtractJwt.fromHeader使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類passport-jwt.ExtractJwt
的用法示例。
在下文中一共展示了ExtractJwt.fromHeader方法的4個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的TypeScript代碼示例。
示例1: function
function (model: DatabaseObject, passport: Passport): void {
let opts: any = {}
opts.secretOrKey = model.tokenSalt
opts.jwtFromRequest = ExtractJwt.fromHeader('token')
let strategy = new Strategy(opts, (jwtPayload, done) => {
model.user.findOne({ _id: jwtPayload._doc._id }).exec()
.then((account) => {
account === undefined ? done(undefined, false) : done(undefined, account)
}, (err) => {
done(err, false)
})
})
passport.use(strategy)
}
示例2: done
import passport from 'passport';
import {User} from '../db/models/user';
import {Strategy as JwtStrategy, ExtractJwt} from 'passport-jwt';
import {Strategy as LocalStrategy} from 'passport-local';
const jwtOptions = {
jwtFromRequest: ExtractJwt.fromHeader('authorization'),
secretOrKey: 'secret' // TODO: Move to .env
};
const localOptions = {usernameField: 'email'};
const localLogin = new LocalStrategy(localOptions, async (email: string, password: string, done: Function) => {
try {
const user = await User.findOne({email});
if (!user) {
return done(null, false);
}
user.comparePassword(password, (err: any, isMatch: boolean) => {
if (err) {
return done(err);
}
if (!isMatch) {
return done(null, false);
}
return done(null, user);
});
} catch (err) {
示例3: JwtStrategy
import * as passport from 'passport';
let opts: StrategyOptions = {
jwtFromRequest: ExtractJwt.fromAuthHeader(),
secretOrKey: 'secret',
issuer: "accounts.example.com",
audience: "example.org"
};
passport.use(new JwtStrategy(opts, function(jwt_payload, done) {
findUser({id: jwt_payload.sub}, function(err, user) {
if (err) {
return done(err, false);
}
if (user) {
done(null, user);
} else {
done(null, false, {message: 'foo'});
// or you could create a new account
}
});
}));
opts.jwtFromRequest = ExtractJwt.fromHeader('x-api-key');
opts.jwtFromRequest = ExtractJwt.fromBodyField('field_name');
opts.jwtFromRequest = ExtractJwt.fromUrlQueryParameter('param_name');
opts.jwtFromRequest = ExtractJwt.fromAuthHeaderWithScheme('param_name');
opts.jwtFromRequest = (req: Request) => { return req.query.token; };
declare function findUser(condition: {id: string}, callback: (error: any, user :any) => void): void;
示例4: JwtStrategy
let opts: StrategyOptions = {
jwtFromRequest: ExtractJwt.fromAuthHeader(),
secretOrKey: 'secret',
issuer: "accounts.example.com",
audience: "example.org"
};
passport.use(new JwtStrategy(opts, function(jwt_payload, done) {
findUser({id: jwt_payload.sub}, function(err, user) {
if (err) {
return done(err, false);
}
if (user) {
done(null, user);
} else {
done(null, false, {message: 'foo'});
// or you could create a new account
}
});
}));
opts.jwtFromRequest = ExtractJwt.fromHeader('x-api-key');
opts.jwtFromRequest = ExtractJwt.fromBodyField('field_name');
opts.jwtFromRequest = ExtractJwt.fromUrlQueryParameter('param_name');
opts.jwtFromRequest = ExtractJwt.fromAuthHeaderWithScheme('param_name');
opts.jwtFromRequest = ExtractJwt.fromExtractors([ExtractJwt.fromHeader('x-api-key'), ExtractJwt.fromBodyField('field_name'), ExtractJwt.fromUrlQueryParameter('param_name')]);
opts.jwtFromRequest = (req: Request) => { return req.query.token; };
opts.secretOrKey = new Buffer('secret');
declare function findUser(condition: {id: string}, callback: (error: any, user :any) => void): void;