description: |

OAuth2 is a protocol that lets external apps request authorization to private
details in a user's account without getting their password. This is preferred
over Basic Authentication because tokens can be limited to specific types of
data, and can be revoked by users at any time.

type: OAuth 2.0 describedBy:

headers:
  Authorization:
    description: Used to send a valid OAuth 2 access token.
    type: string
responses:
  404:
    description: Unauthorized

settings:

authorizationUri: https://app.my-awesome-restaurant.com/login/oauth/authorize
accessTokenUri: https://app.my-awesome-restaurant.com/login/oauth/access_token
authorizationGrants: [ code ]
scopes:
  - "customer"
  - "staff"