mirror of
https://github.com/wassname/DefinitelyTyped.git
synced 2026-09-06 16:20:26 +08:00
@@ -218,6 +218,7 @@ List of Definitions
|
||||
* [NProgress](https://github.com/rstacruz/nprogress) (by [Judah Gabriel Himango](https://github.com/judahgabriel))
|
||||
* [Numeral.js](https://github.com/adamwdraper/Numeral-js) (by [Vincent Bortone](https://github.com/vbortone/))
|
||||
* [OpenLayers](https://github.com/openlayers/openlayers) (by [Ilya Bolkhovsky](https://github.com/bolhovsky/))
|
||||
* [Passport](http://passportjs.org/) (by [Hiroki Horiuchi](https://github.com/horiuchi/))
|
||||
* [Parallel.js](https://github.com/adambom/parallel.js) (by [Josh Baldwin](https://github.com/jbaldwin))
|
||||
* [Parsimmon](https://github.com/jayferd/parsimmon) (by [Bart van der Schoor](https://github.com/Bartvds))
|
||||
* [PDF.js](https://github.com/mozilla/pdf.js) (by [Josh Baldwin](https://github.com/jbaldwin))
|
||||
|
||||
@@ -0,0 +1,61 @@
|
||||
/// <reference path="passport.d.ts" />
|
||||
/// <reference path="../express/express.d.ts" />
|
||||
|
||||
import express = require('express');
|
||||
import passport = require('passport');
|
||||
|
||||
class TestStrategy implements passport.Strategy {
|
||||
public name: string = 'test';
|
||||
constructor() {}
|
||||
authenticate(req: passport.Request) {}
|
||||
}
|
||||
|
||||
passport.use(new TestStrategy());
|
||||
passport.framework('test');
|
||||
passport.serializeUser((user, done) => {});
|
||||
passport.deserializeUser((id, done) => {});
|
||||
|
||||
passport.use(new TestStrategy())
|
||||
.unuse('test')
|
||||
.use(new TestStrategy())
|
||||
.framework('test-fw');
|
||||
|
||||
|
||||
var app = express();
|
||||
app.configure(() => {
|
||||
app.use(passport.initialize());
|
||||
app.use(passport.session());
|
||||
});
|
||||
|
||||
app.post('/login',
|
||||
passport.authenticate('local', { failureRedirect: '/login', failureFlash: true }),
|
||||
function(req, res) {
|
||||
res.redirect('/');
|
||||
});
|
||||
|
||||
app.post('/login', function(req: passport.Request, res: passport.Response, next: (err?: any) => void) {
|
||||
passport.authenticate('local', function(err, user, info) {
|
||||
if (err) { return next(err) }
|
||||
if (!user) {
|
||||
req.session.error = info.message;
|
||||
return res.redirect('/login')
|
||||
}
|
||||
req.logIn(user, function(err) {
|
||||
if (err) { return next(err); }
|
||||
return res.redirect('/users/' + user.username);
|
||||
});
|
||||
})(req, res, next);
|
||||
});
|
||||
|
||||
app.get('/logout', function(req: passport.Request, res: passport.Response) {
|
||||
req.logout();
|
||||
res.redirect('/');
|
||||
});
|
||||
|
||||
function ensureAuthenticated(req: passport.Request, res: passport.Response, next: (err?: any) => void) {
|
||||
if (req.isAuthenticated()) { return next(); }
|
||||
if (req.isUnauthenticated()) {
|
||||
res.redirect('/login');
|
||||
}
|
||||
}
|
||||
|
||||
Vendored
+60
@@ -0,0 +1,60 @@
|
||||
// Type definitions for Passport v0.2.0
|
||||
// Project: http://passportjs.org
|
||||
// Definitions by: Horiuchi_H <https://github.com/horiuchi/>
|
||||
// DefinitelyTyped: https://github.com/borisyankov/DefinitelyTyped
|
||||
|
||||
/// <reference path="../express/express.d.ts" />
|
||||
|
||||
declare module 'passport' {
|
||||
import express = require('express');
|
||||
|
||||
function use(strategy: Strategy): Passport;
|
||||
function use(name: string, strategy: Strategy): Passport;
|
||||
function unuse(name: string): Passport;
|
||||
function framework(fw: string): Passport;
|
||||
function initialize(options?: { userProperty: string; }): express.Handler;
|
||||
function session(options?: { pauseStream: boolean; }): express.Handler;
|
||||
|
||||
function authenticate(strategy: string, options: Object, callback?: express.Handler): express.Handler;
|
||||
function authenticate(strategy: string, callback2: (err: any, user: any, info: any) => void): express.Handler;
|
||||
function authorize(strategy: string, options: Object, callback?: express.Handler): express.Handler;
|
||||
function serializeUser(fn: (user: any, done: (err: any, id: any) => void) => void): void;
|
||||
function deserializeUser(fn: (id: any, done: (err: any, user: any) => void) => void): void;
|
||||
function transformAuthInfo(fn: (info: any, done: (err: any, info: any) => void) => void): void;
|
||||
|
||||
interface Passport {
|
||||
use(strategy: Strategy): Passport;
|
||||
use(name: string, strategy: Strategy): Passport;
|
||||
unuse(name: string): Passport;
|
||||
framework(fw: string): Passport;
|
||||
initialize(options?: { userProperty: string; }): express.Handler;
|
||||
session(options?: { pauseStream: boolean; }): express.Handler;
|
||||
|
||||
authenticate(strategy: string, callback2: (err: any, user: any, info: any) => void): express.Handler;
|
||||
authenticate(strategy: string, options: Object, callback?: express.Handler): express.Handler;
|
||||
authorize(strategy: string, options: Object, callback?: express.Handler): express.Handler;
|
||||
serializeUser(fn: (user: any, done: (err: any, id: any) => void) => void): void;
|
||||
deserializeUser(fn: (id: any, done: (err: any, user: any) => void) => void): void;
|
||||
transformAuthInfo(fn: (info: any, done: (err: any, info: any) => void) => void): void;
|
||||
}
|
||||
|
||||
interface Request extends express.Request {
|
||||
login(user: any, done: (err: any) => void): void;
|
||||
login(user: any, options: Object, done: (err: any) => void): void;
|
||||
logIn(user: any, done: (err: any) => void): void;
|
||||
logIn(user: any, options: Object, done: (err: any) => void): void;
|
||||
|
||||
logout(): void;
|
||||
logOut(): void;
|
||||
|
||||
isAuthenticated(): boolean;
|
||||
isUnauthenticated(): boolean;
|
||||
}
|
||||
interface Response extends express.Response {}
|
||||
|
||||
interface Strategy {
|
||||
name?: string;
|
||||
authenticate(req: Request, options?: Object): void;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user