Door User Authentication API

User authentication operations

OpenAPI Specification

door-user-authentication-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Authentication Access Management User Authentication API
  description: Authentication
  termsOfService: urn:tos
  contact: {}
  license:
    name: Apache 2.0
    url: http://www.apache.org/licenses/LICENSE-2.0
  version: '1.0'
servers:
- url: https://auth.prod.latch.com
  description: Latch Auth API base URL
tags:
- name: User Authentication
  description: User authentication operations
paths:
  /v1/oauth/token#passwordless:
    post:
      tags:
      - User Authentication
      summary: Complete Authentication
      description: Passwordless Authorization endpoint
      operationId: completeAuthentication
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PasswordlessAuthorizationRequestParams'
      responses:
        '200':
          description: Successfully authenticated with Auth0
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PasswordlessAuthorizationResponseParams'
        '201':
          description: Created
        '401':
          description: Invalid Auth0 Credentials
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedError'
        '403':
          description: Forbidden
        '404':
          description: Not Found
  /v1/oauth/token#refresh:
    post:
      tags:
      - User Authentication
      summary: Refresh Token
      description: Auth0 token refresh endpoint
      operationId: refreshToken
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AuthorizationRefreshRequestParams'
      responses:
        '200':
          description: Successfully authenticated with Auth0
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PasswordlessAuthorizationResponseParams'
        '201':
          description: Created
        '401':
          description: Invalid Auth0 Credentials
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedError'
        '403':
          description: Forbidden
        '404':
          description: Not Found
  /passwordless/start:
    post:
      tags:
      - User Authentication
      summary: Start Passwordless Login
      description: Passwordless Authorization start endpoint
      operationId: startPasswordlessLogin
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PasswordlessStartRequestParams'
      responses:
        '200':
          description: Successfully started passwordless flow
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PasswordlessStartResponseParams'
        '201':
          description: Created
        '401':
          description: Invalid Auth0 Credentials
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedError'
        '403':
          description: Forbidden
        '404':
          description: Not Found
components:
  schemas:
    PasswordlessAuthorizationRequestParams:
      title: PasswordlessAuthorizationRequestParams
      required:
      - audience
      - client_id
      - client_secret
      - grant_type
      - otp
      - realm
      - scope
      - username
      type: object
      properties:
        audience:
          type: string
          description: Latch API to be authorized for
          default: https://rest.latchaccess.com/access/sdk
        client_id:
          type: string
          description: Auth0 regular web application client identifier
        client_secret:
          type: string
          description: Auth0 regular web application client secret
        grant_type:
          type: string
          enum:
          - http://auth0.com/oauth/grant-type/passwordless/otp
        otp:
          type: string
          description: Auth0 verification code sent to user
          example: '123456'
        realm:
          type: string
          enum:
          - email
        scope:
          type: string
          description: Auth0 scopes for token
          enum:
          - openid profile email offline_access
        username:
          type: string
          description: Email of user
      description: Parameters for the Auth0 passwordless token endpoint
    AuthorizationRefreshRequestParams:
      title: AuthorizationRefreshRequestParams
      required:
      - audience
      - client_id
      - client_secret
      - grant_type
      - refresh_token
      type: object
      properties:
        audience:
          type: string
          description: Latch API to be authorized for
          default: https://rest.latchaccess.com/access/sdk
        client_id:
          type: string
          description: Auth0 regular web application client identifier
        client_secret:
          type: string
          description: Auth0 regular web application client secret
        grant_type:
          type: string
          description: Always "refresh_token"
          enum:
          - refresh_token
        refresh_token:
          type: string
          description: Auth0 refresh token
      description: Parameters for the Auth0 token refresh endpoint
    PasswordlessStartRequestParams:
      title: PasswordlessStartRequestParams
      required:
      - client_id
      - client_secret
      - connection
      - email
      - send
      type: object
      properties:
        client_id:
          type: string
          description: Auth0 regular web application client identifier
        client_secret:
          type: string
          description: Auth0 regular web application client secret
        connection:
          type: string
          enum:
          - email
        email:
          type: string
          description: Email of user
        send:
          type: string
          enum:
          - code
      description: Parameters for the Auth0 passwordless start endpoint
    PasswordlessAuthorizationResponseParams:
      title: PasswordlessAuthorizationResponseParams
      required:
      - access_token
      - refresh_token
      - token_type
      type: object
      properties:
        access_token:
          type: string
          description: Auth0 access token
        refresh_token:
          type: string
          description: Auth0 refresh token
        token_type:
          type: string
          description: Token type
          enum:
          - Bearer
      description: Response from the authentication endpoint
    UnauthorizedError:
      title: UnauthorizedError
      required:
      - message
      type: object
      properties:
        message:
          type: string
          enum:
          - UNAUTHORIZED
    PasswordlessStartResponseParams:
      title: PasswordlessStartResponseParams
      required:
      - _id
      - email
      - email_verified
      type: object
      properties:
        _id:
          type: string
          description: Auth0 request identifier
        email:
          type: string
          description: User email
        email_verified:
          type: boolean
          description: Verification status of Auth0 account associated with user email. This will not impact the auth flow.
          example: false
      description: Response from the authentication endpoint