diff --git a/passport/index.d.ts b/passport/index.d.ts
index 5aeccc7f7b..39ec5ee09c 100644
--- a/passport/index.d.ts
+++ b/passport/index.d.ts
@@ -1,10 +1,8 @@
-// Type definitions for Passport v0.2.0
+// Type definitions for Passport 0.3
// Project: http://passportjs.org
// Definitions by: Horiuchi_H
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
-///
-
declare namespace Express {
export interface Request {
authInfo?: any;
@@ -12,9 +10,9 @@ declare namespace Express {
// These declarations are merged into express's Request type
login(user: any, done: (err: any) => void): void;
- login(user: any, options: Object, done: (err: any) => void): void;
+ login(user: any, options: any, done: (err: any) => void): void;
logIn(user: any, done: (err: any) => void): void;
- logIn(user: any, options: Object, done: (err: any) => void): void;
+ logIn(user: any, options: any, done: (err: any) => void): void;
logout(): void;
logOut(): void;
@@ -29,77 +27,72 @@ declare module 'passport' {
namespace passport {
- interface AuthenticateOptions {
- authInfo?:boolean;
- assignProperty?:string;
- failureFlash?: string|boolean|Object;
- failureMessage?: boolean|string;
- failureRedirect?:string;
- failWithError?:boolean;
- session?: boolean;
- scope?: string|string[];
- successFlash?: string|boolean|Object;
- successMessage?: boolean|string;
- successRedirect?:string;
- successReturnToOrRedirect?:string;
- pauseStream?:boolean;
- userProperty?:string;
- }
+ interface AuthenticateOptions {
+ authInfo?: boolean;
+ assignProperty?: string;
+ failureFlash?: string|boolean|any;
+ failureMessage?: boolean|string;
+ failureRedirect?: string;
+ failWithError?: boolean;
+ session?: boolean;
+ scope?: string|string[];
+ successFlash?: string|boolean|any;
+ successMessage?: boolean|string;
+ successRedirect?: string;
+ successReturnToOrRedirect?: string;
+ pauseStream?: boolean;
+ userProperty?: string;
+ }
- interface Passport {
- use(strategy: passport.Strategy): Passport;
- use(name: string, strategy: passport.Strategy): Passport;
- unuse(name: string): Passport;
- framework(fw: passport.Framework): Passport;
- initialize(options?: { userProperty: string; }): express.Handler;
- session(options?: { pauseStream: boolean; }): express.Handler;
+ interface Passport {
+ use(strategy: passport.Strategy): this;
+ use(name: string, strategy: passport.Strategy): this;
+ unuse(name: string): this;
+ framework(fw: passport.Framework): this;
+ initialize(options?: { userProperty: string; }): express.Handler;
+ session(options?: { pauseStream: boolean; }): express.Handler;
- authenticate(strategy: string, callback?: Function): express.Handler;
- authenticate(strategy: string, options: AuthenticateOptions, callback?: Function): express.Handler;
- authenticate(strategies: string[], callback?: Function): express.Handler;
- authenticate(strategies: string[], options: AuthenticateOptions, callback?: Function): express.Handler;
- authorize(strategy: string, callback?: Function): express.Handler;
- authorize(strategy: string, options: Object, callback?: Function): express.Handler;
- authorize(strategies: string[], callback?: Function): express.Handler;
- authorize(strategies: string[], options: Object, callback?: Function): express.Handler;
- serializeUser(fn: (user: any, done: (err: any, id: any) => void) => void): void;
- serializeUser(fn: (user: TUser, done: (err: any, id: TID) => void) => void): void;
- deserializeUser(fn: (id: any, done: (err: any, user: any) => void) => void): void;
- deserializeUser(fn: (id: TID, done: (err: any, user: TUser) => void) => void): void;
- transformAuthInfo(fn: (info: any, done: (err: any, info: any) => void) => void): void;
- }
+ authenticate(strategy: string|string[], callback?: Function): express.Handler;
+ authenticate(strategy: string|string[], options: AuthenticateOptions, callback?: Function): express.Handler;
+ authorize(strategy: string|string[], callback?: Function): express.Handler;
+ authorize(strategy: string|string[], options: any, callback?: Function): express.Handler;
+ serializeUser(fn: (user: TUser, done: (err: any, id: TID) => void) => void): void;
+ deserializeUser(fn: (id: TID, done: (err: any, user: TUser) => void) => void): void;
+ transformAuthInfo(fn: (info: any, done: (err: any, info: any) => void) => void): void;
+ }
- interface Strategy {
- name?: string;
- authenticate(req: express.Request, options?: Object): void;
- }
+ interface Strategy {
+ name?: string;
+ authenticate(req: express.Request, options?: any): void;
+ }
- interface Profile {
- provider: string;
- id: string;
- displayName: string;
+ interface Profile {
+ provider: string;
+ id: string;
+ displayName: string;
username?: string;
name?: {
- familyName: string;
- givenName: string;
- middleName?: string;
- };
- emails?: {
- value: string;
- type?: string;
- }[];
- photos?: {
- value: string;
- }[];
- }
+ familyName: string;
+ givenName: string;
+ middleName?: string;
+ };
+ emails?: Array<{
+ value: string;
+ type?: string;
+ }>;
+ photos?: Array<{
+ value: string;
+ }>;
+ }
interface Framework {
- initialize(passport: Passport, options?: Object): Function;
- authenticate(passport: Passport, name: string, options?: Object, callback?: Function): Function;
- authorize?(passport: Passport, name: string, options?: Object, callback?: Function): Function;
+ initialize(passport: Passport, options?: any): Function;
+ authenticate(passport: Passport, name: string, options?: any, callback?: Function): Function;
+ authorize?(passport: Passport, name: string, options?: any, callback?: Function): Function;
}
}
const passport: passport.Passport;
export = passport;
}
+
diff --git a/passport/passport-tests.ts b/passport/passport-tests.ts
index 06fd9cd692..c4b0ccb596 100644
--- a/passport/passport-tests.ts
+++ b/passport/passport-tests.ts
@@ -1,10 +1,8 @@
+import * as express from 'express';
+import 'express-session';
+import * as passport from 'passport';
-///
-
-import express = require('express');
-import passport = require('passport');
-
class TestStrategy implements passport.Strategy {
public name: string = 'test';
constructor() { }
@@ -45,7 +43,7 @@ app.configure(() => {
app.use(passport.session());
});
-app.post('/login',
+app.post('/login',
passport.authenticate('local', { failureRedirect: '/login', failureFlash: true }),
function (req, res) {
res.redirect('/');
@@ -55,7 +53,9 @@ app.post('/login', function (req, res, next) {
passport.authenticate('local', function (err: any, user: { username: string; }, info: { message: string; }) {
if (err) { return next(err) }
if (!user) {
- req.session['error'] = info.message;
+ if (req.session) {
+ req.session['error'] = info.message;
+ }
return res.redirect('/login')
}
req.logIn(user, function (err) {
diff --git a/passport/tsconfig.json b/passport/tsconfig.json
index 9b5cecd0ff..6b9ad22c50 100644
--- a/passport/tsconfig.json
+++ b/passport/tsconfig.json
@@ -3,7 +3,8 @@
"module": "commonjs",
"target": "es6",
"noImplicitAny": true,
- "strictNullChecks": false,
+ "noImplicitThis": true,
+ "strictNullChecks": true,
"baseUrl": "../",
"typeRoots": [
"../"
@@ -16,4 +17,4 @@
"index.d.ts",
"passport-tests.ts"
]
-}
\ No newline at end of file
+}