import Bluebird from "bluebird"; import { KuzzleRequest } from "../request"; import { NativeController } from "./baseController"; import { User } from "../../model/security/user"; import { Token } from "../../model/security/token"; export default class AuthController extends NativeController { private anonymousId; private readonly logger; /** * @param {Kuzzle} kuzzle * @constructor */ constructor(); /** * Controller initialization: we need the anonymous user identifier for the * "isAuthenticated" assertion * * @returns {Promise} */ init(): Promise; createToken(request: KuzzleRequest): Promise<{ expiresAt: number; singleUse: boolean; token: string; ttl: number; }>; /** * Checks if an API action can be executed by the current user */ checkRights(request: KuzzleRequest): Promise<{ allowed: boolean; }>; /** * Creates a new API key for the user * @param {KuzzleRequest} request */ createApiKey(request: KuzzleRequest): Promise; /** * Search in the user API keys */ searchApiKeys(request: KuzzleRequest): Promise<{ hits: any[]; total: number; }>; /** * Deletes an API key */ deleteApiKey(request: KuzzleRequest): Promise<{ _id: string; }>; /** * Logs the current user out * * @param {KuzzleRequest} request * @returns {Promise} */ logout(request: KuzzleRequest): Promise; _sendToken(token: Token, request: KuzzleRequest): Promise; /** * Attempts a login with request informations against the provided strategy; * local is used if strategy is not provided. * * @param {KuzzleRequest} request * @returns {Promise} */ login(request: KuzzleRequest): Promise; /** * Returns the user identified by the given jwt token * * @param {KuzzleRequest} request * @returns {Promise} */ getCurrentUser(request: KuzzleRequest): Promise; /** * Returns the rights of the user identified by the given jwt token * * @param {KuzzleRequest} request * @returns {Promise} */ getMyRights(request: KuzzleRequest): Promise; /** * Checks the validity of a token. * * @param {KuzzleRequest} request * @returns {Promise} */ checkToken(request: any): Promise<{ expiresAt: any; kuid: any; valid: boolean; state?: undefined; } | { state: any; valid: boolean; expiresAt?: undefined; kuid?: undefined; }>; /** * Updates the current user if it is not anonymous * * @param {KuzzleRequest} request * @returns {Promise} */ updateSelf(request: any): Promise>; /** * List authentication strategies * * @returns {Promise.} */ getStrategies(): Bluebird; /** * @param {KuzzleRequest} request * @returns {Promise.} */ createMyCredentials(request: any): any; /** * @param {KuzzleRequest} request * @returns {Promise.} */ updateMyCredentials(request: any): any; /** * @param {KuzzleRequest} request * @returns {Promise.} */ credentialsExist(request: any): any; /** * @param {KuzzleRequest} request * @returns {Promise.} */ validateMyCredentials(request: any): any; /** * @param {KuzzleRequest} request * @returns {Promise.} */ deleteMyCredentials(request: any): any; /** * @param {KuzzleRequest} request * @returns {Promise.} */ getMyCredentials(request: any): any; /** * @param {KuzzleRequest} request */ refreshToken(request: any): Promise; assertIsAuthenticated(request: any): void; }