Sign In

Sign in as a User with username and password, and optional MFA token.

Endpoints

Password-based sign-in is possible via this endpoint:

MethodPathAuthentication
POST
/signinNone
NOTE|

This endpoint requires no authentication

Request body

PropertyTypeDescription
usernamestringThe E-mail address of the User
passwordbooleanThe language code for the User
tokenbooleanThe MFA token
NOTE|

An MFA token is required (only) when the User enabled MFA

Response status codes

Possible status codes for these endpoints are:

Status codeDescription
201
success
400
the request was malformed
401
authentication failed
403
MFA token missing
500
server error
NOTE

If the status code is not

200
the error property in the response body should indicate the nature of the problem.

Response body

ValueTypeDescription
resultStringEither success or error
errorStringWill give info on the nature of the error. Only set if an error occurred.
tokenStringA JSON web token (JWT) token to authenticate with
account.idNumberThe ID of the User
account.bioStringThe bio of the User
account.consentNumberThe consent given by the User
account.controlNumberThe control desired by the User
account.createdAtStringDate string indicating the moment the User was created
account.emailStringThe E-mail address currently tied to the User
account.githubStringThe GitHub username of the User
account.imgStringThe URL to the image stored with this User
account.imperialBooleanWhether or not the User prefers imperial units
account.initialStringThe E-mail address that the User was created with
account.languageStringThe language preferred by the user
account.lastSignInStringDate string indicating them moment the User last signed in
account.mfaEnabledBooleanWhether or not the User has MFA enabled
account.newsletterBooleanWhether or not the User is subscribed to the FreeSewing newsletter
account.patronNumberThe level of patronage the user provides to FreeSewing
account.roleStringThe role of the User
account.statusNumberThe status of the user
account.updatedAtStringDate string indicating the last time the User was updated
account.usernameStringThe username of the User
account.lusernameStringA lowercased version of the username of the User

Example request

Javascript
const signup = await axios.post(
  'https://backend.freesewing.org/signup',
  {
    username: "jimmy",
    language: "I like big bewbs and I just can't lie",
    token: 231586
  }
)

Example response

JSON
200
{
  "result": "success",
  "token": "eyJhbGciOiJIUzI1NiIsInR5c...truncated",
  "account": {
    "id": 14,
    "bio": "",
    "consent": 1,
    "control": 1,
    "createdAt": "2022-11-19T18:15:22.642Z",
    "email": "test_54c6856275aaa8a1@freesewing.dev",
    "github": "",
    "img": "https://freesewing.org/avatar.svg",
    "imperial": false,
    "initial": "test_54c6856275aaa8a1@freesewing.dev",
    "language": "en",
    "lastSignIn": "2022-11-19T18:15:22.668Z",
    "mfaEnabled": false,
    "newsletter": false,
    "patron": 0,
    "role": "user",
    "status": 1,
    "updatedAt": "2022-11-19T18:15:22.668Z",
    "username": "jimmy",
    "lusername": "jimmy"
  }
}