add test file

This commit is contained in:
Horiuchi_H
2014-04-01 12:42:32 -07:00
parent 9975d03fde
commit c6fcc96c17
2 changed files with 121 additions and 0 deletions
+61
View File
@@ -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');
}
}
+60
View File
@@ -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;
}
}