PHP WebShell

Текущая директория: /opt/BitGoJS/node_modules/avalanche/src/apis/auth

Просмотр файла: api.ts

/**
 * @packageDocumentation
 * @module API-Auth
 */
import AvalancheCore from "../../avalanche"
import { JRPCAPI } from "../../common/jrpcapi"
import { RequestResponseData } from "../../common/apibase"
import { ErrorResponseObject } from "../../utils/errors"
import {
  ChangePasswordInterface,
  NewTokenInterface,
  RevokeTokenInterface
} from "./interfaces"

/**
 * Class for interacting with a node's AuthAPI.
 *
 * @category RPCAPIs
 *
 * @remarks This extends the [[JRPCAPI]] class. This class should not be directly called. Instead, use the [[Avalanche.addAPI]] function to register this interface with Avalanche.
 */
export class AuthAPI extends JRPCAPI {
  /**
   * Creates a new authorization token that grants access to one or more API endpoints.
   *
   * @param password This node's authorization token password, set through the CLI when the node was launched.
   * @param endpoints A list of endpoints that will be accessible using the generated token. If there"s an element that is "*", this token can reach any endpoint.
   *
   * @returns Returns a Promise string containing the authorization token.
   */
  newToken = async (
    password: string,
    endpoints: string[]
  ): Promise<string | ErrorResponseObject> => {
    const params: NewTokenInterface = {
      password,
      endpoints
    }
    const response: RequestResponseData = await this.callMethod(
      "auth.newToken",
      params
    )
    return response.data.result.token
      ? response.data.result.token
      : response.data.result
  }

  /**
   * Revokes an authorization token, removing all of its rights to access endpoints.
   *
   * @param password This node's authorization token password, set through the CLI when the node was launched.
   * @param token An authorization token whose access should be revoked.
   *
   * @returns Returns a Promise boolean indicating if a token was successfully revoked.
   */
  revokeToken = async (password: string, token: string): Promise<boolean> => {
    const params: RevokeTokenInterface = {
      password,
      token
    }
    const response: RequestResponseData = await this.callMethod(
      "auth.revokeToken",
      params
    )
    return response.data.result.success
  }

  /**
   * Change this node's authorization token password. **Any authorization tokens created under an old password will become invalid.**
   *
   * @param oldPassword This node's authorization token password, set through the CLI when the node was launched.
   * @param newPassword A new password for this node's authorization token issuance.
   *
   * @returns Returns a Promise boolean indicating if the password was successfully changed.
   */
  changePassword = async (
    oldPassword: string,
    newPassword: string
  ): Promise<boolean> => {
    const params: ChangePasswordInterface = {
      oldPassword,
      newPassword
    }
    const response: RequestResponseData = await this.callMethod(
      "auth.changePassword",
      params
    )
    return response.data.result.success
  }

  /**
   * This class should not be instantiated directly. Instead use the [[Avalanche.addAPI]]
   * method.
   *
   * @param core A reference to the Avalanche class
   * @param baseURL Defaults to the string "/ext/auth" as the path to rpc's baseURL
   */
  constructor(core: AvalancheCore, baseURL: string = "/ext/auth") {
    super(core, baseURL)
  }
}

Выполнить команду


Для локальной разработки. Не используйте в интернете!