Login

Login endpoint is required to obtain access to all Private🔒 endpoints. The login process involves three steps which are stated below in brief:

  1. Nonce creation: Generate a payload using the /auth/nonce endpoint.

  2. Sign the payload: To sign the payload obtained after accessing the above API, use the NodeJS SDK signMsg helper function.

  3. Generate access token: After generating the signature, the signature & eth address is sent in the /auth/login endpoint.

Please visit Brine's website and create an account using your wallet before proceeding with the below steps.

1. Nonce Creation

A nonce is a variable that is generated just once and can be used only one time. Generation of a nonce is the first step of the login process. The payload received in this step will be required in the next one.

Endpoint

POST /sapi/v1/auth/nonce/

Request Body

FieldTypeMandatory

eth_address

STRING

YES

Example:

{
  "eth_address": "Ox"
}

Response

{
  "status": "success",
  "message": "Nonce Acquired",
  "payload": "You’re now signing into Brine Testnet, make sure the origin is https://testnet.brine.finance (Login-code:YG2DHzDpRncwCZAVRUTrVG)
  "
}

2. Sign The Payload

In this step you’d be required to sign the “payload” obtained through the first step i.e., “Nonce Creation” 👆. Use “payload” as variable “data” and call the signMsg function ( have a look at the snippet below ) located in use the NodeJS SDK. to sign “data” with your private key. A signature that will be required in the third step will be returned at the end of this process.

Code snippet

import { signMsg } from '@brine-fi/brine-connector'

const signedMsg = signMsg(message, privateKey) 

3.Generate Access Token

The access token (JWT) is used to authenticate your request for private endpoints. This key allows Brine to ensure that the requests are always coming from the rightful owner. Make use of the signature that was returned in the previous step “Sign The Payload” 👆, along with the ethereum address to receive a JWT Access Token.

Request Body

FieldTypeMandatory

eth_address

STRING

YES

user_signature

STRING

YES

Example

{
  "eth_address": "Ox",
  "user_signature": "Ox"
}

Response

{
  status: 'success',
  message: 'Login Successful',
  payload: {
    uid: 'IDDAF4F5E3C7',
    signature: ''
  },
  token: {
    refresh: '',
    access: ''
  }
}

Refresh Token for Login

Endpoint

POST /sapi/v1/auth/token/refresh/ 

Request body

{
    "refresh": "eyJndjiFy8gsi0....wJPnQbr9yX4DR" 
} 

Response

{
    "status": "success",
    "message": "",
    "payload": {
        "access": "eybdgyr0iOi....gVbdghy7g_Pn3QCU",
        "refresh": "eyJ0eXAiOi....mVeL25ytndhltJL4"
    }
}

Last updated