Skip to content

Latest commit

 

History

History
161 lines (138 loc) · 3.34 KB

README.md

File metadata and controls

161 lines (138 loc) · 3.34 KB

Introduction

This is a simple Auth Service based on Laravel.

Token is generated in a json response from the Register, Login or Renew Token endpoint.

After token is generated, it is used in the Header for protected requests. See below

Headers for endpoints that requires token

Authorization: Bearer  API Token Generated
Accepts: application/json

Setup

  • Pull this repo
  • Run composer install
  • Copy .env.example to .env
  • Setup database by creating sqlite.database file in database directory (Or setup MySQL if you wish)
  • Run php artisan migrate
  • Run php artisan serve
  • Register a user using endpoint or use Postman Collection in Endpoints

Endpoints

There are 4 API Endpoints

Route Name Endpoint Type Details
Register /api/register POST Unprotected
Login /api/login POST Unprotected
Renew Token /api/renew-token GET Requires Token
User Data /api/user-data GET Requires Token

Download this Postman Collection file of all requests

Register

Register endpoint accepts 3 parameters

name | required
email | unique to a user and required
password | required

Successful Register response

Status code 200
{
   "status": "success",
   "message": "Successfully Registered",
   "token": "1|yba3MVcRCFmQ2CaEnikKkuXoiXaBMuzNv1UaZiZe"
}

Unsuccessful Register response

Status code 422
{
   "message": "The given data was invalid.",
   "errors": {
       "name": [
           "The name field is required."
       ],
       "email": [
           "The email has already been taken."
       ]
   }
}
OR 
Status code 200
{
   "status": "fail",
   "message": "Something went wrong"
}

Login

Login endpoint accepts 2 parameters

email | required
password | required

Successful Login response

Status code 200
{
   "status": "success",
   "message": "Successfully Authenticated",
   "token": "4|Fz4qLAbXpAnlSy6wd7YwWCDvypCUftVc629fqYP8"
}

Unsuccessful Login response

Status code 403
{
   "status": "fail",
   "message": "unauthenticated"
}

Renew Token

Renew Token endpoint only requires the Header Authorization parameters

Authorization: Bearer  API Token Generated

Successful Renew Token response

Status code 200
{
   "status": "success",
   "message": "Successfully Renewed Token",
   "token": "6|xqY7kJVnRUhRm9b4P9rKmTEnXvC8U98QTzLJcWCK"
}

Unsuccessful Renew Token response

Status code 200
{
   "status": "fail",
   "message": "Something went wrong"
}

User Data

User Data endpoint only requires the Header Authorization parameters

Authorization: Bearer  API Token Generated

Successful User Data response

Status code 200
{
   "id": 1,
   "name": "Tim",
   "email": "[email protected]",
   "email_verified_at": null,
   "created_at": "2020-09-25T02:26:55.000000Z",
   "updated_at": "2020-09-25T02:26:55.000000Z"
}

Unsuccessful User Data response

Status code 200
{
   "status": "fail",
   "message": "Something went wrong"
}

Tests

To run tests, run

php artisan test