2
1
mirror of https://github.com/Thream/socketio-jwt.git synced 2024-07-21 09:38:31 +02:00

Added definition file, exported UnauthorizedError

This commit is contained in:
Root-Core 2017-04-18 23:21:07 +02:00
parent 90f431741b
commit 72f3846fcf
3 changed files with 73 additions and 0 deletions

View File

@ -221,3 +221,4 @@ function getSecret(request, secret, token, callback) {
};
exports.authorize = authorize;
exports.UnauthorizedError = UnauthorizedError;

View File

@ -3,6 +3,7 @@
"version": "4.5.0",
"description": "authenticate socket.io connections using JWTs",
"main": "lib/index.js",
"types": "./types/index.d.ts",
"keywords": [
"socket",
"socket.io",
@ -22,6 +23,7 @@
},
"license": "MIT",
"dependencies": {
"@types/socket.io": "~1.4.29",
"jsonwebtoken": "^5.0.0",
"xtend": "~2.1.2"
},

70
types/index.d.ts vendored Normal file
View File

@ -0,0 +1,70 @@
/**
* This module allows to authenticate socket.io connections with JWTs.
* This is especially if you do not want to use cookies in a single page application.
*/
/// <reference types="socket.io" />
declare module 'socketio-jwt' {
/**
* Defines possible errors for the secret-callback.
*/
interface ISocketIOError {
readonly code: string;
readonly message: string;
}
/**
* Callback gets called, if secret is given dynamically.
*/
interface ISocketCallback {
(err: ISocketIOError, success: string): void;
}
interface ISocketIOMiddleware {
(socket: SocketIO.Socket, fn: (err?: any) => void): void;
}
interface IOptions {
additional_auth?: (decoded: object, onSuccess: () => void, onError: (err: (string | ISocketIOError), code: string) => void) => void;
callback?: (false | number);
secret: (string | ((request: any, decodedToken: object, callback: ISocketCallback) => void));
decodedPropertyName?: string;
auth_header_required?: boolean;
handshake?: boolean;
required?: boolean;
timeout?: number;
}
function authorize(options: IOptions/*, onConnection: Function*/): ISocketIOMiddleware;
interface UnauthorizedError extends Error {
readonly message: string;
readonly inner: object;
readonly data: { message: string, code: string, type: 'UnauthorizedError' }
}
var UnauthorizedError: {
prototype: UnauthorizedError;
new (code: string, error: { message: string }): UnauthorizedError;
}
/**
* This is an augmented version of the SocketIO.Server.
* It knows the 'authenticated' event and should be extended in future.
* @see SocketIO.Server
*/
export interface JWTServer extends SocketIO.Server {
/**
* The event gets fired when a new connection is authenticated via JWT.
* @param event The event being fired: 'authenticated'
* @param listener A listener that should take one parameter of type Socket
* @return The default '/' Namespace
*/
on(event: ('authenticated' | string), listener: (socket: SocketIO.Socket) => void): SocketIO.Namespace;
}
}