reiterus/microapi-secure

MicroApi Secure is a small API engine based on MicroApi Core and Symfony packages.

1.6.0 2023-04-12 05:58 UTC

This package is auto-updated.

Last update: 2024-04-12 08:05:40 UTC


README

MicroApi Secure is a small engine for creating application APIs based on Symfony packages, which is a development of MicroApi Core and contains security tools. Since MicroApi is based on the Symfony architecture, it can be developed to any level of complexity if desired. Forming your application based on this engine, you will always be sure that there is nothing superfluous in your code.

Features of MicroApi Secure out of the box

  • ability to
    • create secure endpoints
    • use JWT-tokens
  • authentication examples base, json and token
  • example of using a provider
    • in-memory
    • in-json
  • users list in a JSON-file
  • PhpStorm http requests files
  • custom logger with named channels
  • 3 configuration files
  • examples of testing REST API endpoints

See also core features.

Join the development of MicroApi!

Usage

It's very simple! Just run these two commands:

  • composer create-project reiterus/microapi-secure folder && cd folder
  • make docker-start

That's all!
Now your API app is available at http://localhost:8009

JWT

To get JWT-token just send http-request to endpoint. For example, /admin.

To check/decode this token send request to jwt/decode endpoint.

GET http://localhost:8009/jwt/decode
Authorization: Bearer some.jwt-token

JWT-token structure:

{
  "iat": 1681036036,
  "exp": 1681036336,
  "sub": "admin.email@yandex.ru",
  "user": {
    "username": "admin",
    "email": "admin.email@yandex.ru",
    "roles": [
      "ROLE_ADMIN"
    ]
  }
}

Logger

# run command
docker-compose logs -ft api | grep MICROAPI
# get log info
MICROAPI: TOKEN_ACCESS: Invalid Access Token {"token":"wrong.token.manager"}

Makefile commands

For the convenience of working with the project, there are several make-commands: local and for Docker.

Examples

Default response at /admin endpoint

{
  "page": "Admin Account",
  "identifier": "admin",
  "roles": [
    "ROLE_ADMIN"
  ]
}

Installation

You can install the project in two ways

From packagist.org

composer create-project reiterus/microapi-secure

From GitHub repository

{
 "repositories": [
  {
   "type": "vcs",
   "url": "https://github.com/reiterus/microapi-secure.git"
  }
 ]
}

License

This library is released under the MIT license.