PHP Classes

How to Use JWT Tokens to Implement a PHP CRUD API that Exchanges Data Securely Between API Client and the API Server using the Package PHP Project JWT: REST API example to perform user login operations

Recommend this page to a friend!
     
  Info   Example   View files Files   Install with Composer Install with Composer   Download Download   Reputation   Support forum   Blog    
Last Updated Ratings Unique User Downloads Download Rankings
2024-05-28 (4 months ago) RSS 2.0 feedNot yet rated by the usersTotal: 61 All time: 10,477 This week: 47Up
Version License PHP version Categories
php-project-jwt 1.0.0The PHP License5PHP 5, Cryptography, User Management, W...
Description 

Author

This package implements a REST API example to perform user login operations.

It implements an API that allows clients to perform CRUD operations on user accounts like getting the user account details, listing all users, updating a user account, delete one user account.

The API uses JSON Web Tokens (JWT) to exchange information to verify its authenticity.

Picture of Hicri
  Performance   Level  
Name: Hicri <contact>
Classes: 26 packages by
Country: Turkey Turkey
Age: 30
All time rank: 291048 in Turkey Turkey
Week rank: 192 Up3 in Turkey Turkey Up
Innovation award
Innovation award
Nominee: 4x

Winner: 1x

Example

<?php


require_once __DIR__ . '/vendor/autoload.php';
require_once
__DIR__ . '/Controllers/Login.php';
require_once
__DIR__ . '/Controllers/Item.php';



require_once
__DIR__ . '/jwt/vendor/autoload.php';

require_once
__DIR__ . '/models/Database.php';
require_once
__DIR__ . '/Control.php';






// Create Router instance
$router = new \Bramus\Router\Router();

$router->set404(function () {
   
header($_SERVER['SERVER_PROTOCOL'] . ' 404 Not Found');
    echo
'404, route not found!';
});


$router->get('/', function() {
    echo
'Home Page';
});



/* Login / All - Single - Register - Login Update - Login Delete */


$router->post('/login', 'login@index');
$router->post('/login/all', 'login@all');
$router->post('/login/single', 'login@single');
$router->post('/login/register', 'login@register');
$router->post('/login/update', 'login@update');
$router->post('/login/delete', 'login@delete');


/* Item / All - Single - Create - Update - Delete */


$router->post('/item/all', 'Item@all');
$router->post('/item/single', 'Item@single');
$router->post('/item/create', 'Item@create');
$router->post('/item/update', 'Item@update');
$router->post('/item/delete', 'Item@delete');






$router->run();





?>


Details

PHP- CRUD - Rest API

Single file PHP script that adds a REST API to a MySQL database.

Requirements

- PHP 7.0 or higher with PDO drivers enabled for one of these database systems: - MySQL 5.6 / MariaDB 10.0 or higher for spatial features in MySQL

Configuration

Edit the following lines in the bottom of the file "login.php" and "Item.php":

$vt = $this->Database(
    "Database",
    "localhost",
    "stable",
    "root",
    ""
);


Features

The following features are supported:

- JWT installment - ElastichSearch V2

LOGIN CRUD

The example login table has only a a few fields:

post  
=======
/login     
/login/all  
/login/single
/login/register
/login/update
/login/delete

The CRUD + List operations below act on this table.

Login

To read a record from this table the request can be written in URL format as:

POST /login

Headers

Content-Type : application/json

Body-raw / Json request

{
    "email" : "deneme@gmail.com",
    "password" : "123456",
    "apikey" : "12"

}

Where "1" is the value of the primary key of the record that you want to read. It will return:

{
    "status":1,
    "jwt":"eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJsb2NhbGhvc3QiLCJpYXQiOjE2NDY5NDE2MjMsIm5iZiI6MTY0Njk0MTYzMywiZXhwIjoxNjQ2OTQ1MjIzLCJhdWQiOiJteWxvZ2luIiwiZGF0YSI6eyJpZCI6IjEiLCJlbWFpbCI6ImRlbmVtZUBnbWFpbC5jb20iLCJteWFwaWtleSI6IjEyIn19.5ZFqcYSADVaG0BoFBNtxl5nfjCR7d3Wn8JZ0ra-PcJ8","message":"Succesful"

}

On login operations.

Create

To read a record from this table the request can be written in URL format as:

POST /login/register

Headers

Content-Type : application/json
Authorization : Login JWt 

Body-raw / Json request

{
    "email":"example@example.com",
    "password":"123456",
    "apikey":"555",
    "status":"1",
    "myapi":"12",
    "secret":"stableDeneme"

}

Where "1" is the value of the primary key of the record that you want to read. It will return:

{

    "status":1,
    "message":"Succesful"

}

On create operations.

Read - Single

To read a record from this table the request can be written in URL format as:

POST /login/single

Headers

Content-Type : application/json
Authorization : Login JWT

Body-raw / Json request

{
    "id" : "11",
    "myapi" : "12",
    "secret" : "stableDeneme"

}

Where "1" is the value of the primary key of the record that you want to read. It will return:

{
    "status":1,
    "data":{
        "login_id":"11",
        "login_email":"example@example.com",
        "login_pass":"7c4a8d09ca3762af61e59520943dc26494f8941b",
        "login_apikey":"555",
        "login_status":"1"
        },
    "message":"Succesful"
}

On single read operations.

List

To read a record from this table the request can be written in URL format as:

POST /login/all

Headers

Content-Type : application/json
Authorization : Login JWT

Body-raw / Json request

{
    "myapi" : "12",
    "secret" : "stableDeneme"

}

Where "1" is the value of the primary key of the record that you want to read. It will return:

{
    "status": 1,
    "data": [
        {
            "login_id": "1",
            "login_email": "deneme@gmail.com",
            "login_pass": "7c4a8d09ca3762af61e59520943dc26494f8941b",
            "login_apikey": "12",
            "login_status": "1"
        },
        {
            "login_id": "10",
            "login_email": "tamamd?r@gmail",
            "login_pass": "7c4a8d09ca3762af61e59520943dc26494f8941b",
            "login_apikey": "998",
            "login_status": "1"
        },
        {
            "login_id": "11",
            "login_email": "example@example.com",
            "login_pass": "7c4a8d09ca3762af61e59520943dc26494f8941b",
            "login_apikey": "555",
            "login_status": "1"
        }
    ],
            "message": "Succesful"
}

On read operations.

Update

To read a record from this table the request can be written in URL format as:

POST /login/update

Headers

Content-Type : application/json
Authorization : Login JWT

Body-raw / Json request

{
     "id": "11",
     "email": "example@example.com",
     "password": "555666777",
     "apikey": "555",
     "status": "1",
     "myapi":"12",
     "secret":"stableDeneme"
}

Where "1" is the value of the primary key of the record that you want to read. It will return:

{

    "status": 1,
    "message": "Succesful"

}

On update operations.

Delete

To read a record from this table the request can be written in URL format as:

POST /login/delete

Headers

Content-Type : application/json
Authorization : Login JWT

Body-raw / Json request

{
     "id" : "10",
     "myapi" : "12",
     "secret" : "stableDeneme"
}

Where "1" is the value of the primary key of the record that you want to read. It will return:

{

    "status": 1,
    "message": "Succesful"

}

On delete operations.


  Files folder image Files (45)  
File Role Description
Files folder imagerestAPI (4 files, 5 directories)
Files folder imagesql (1 file)
Accessible without login Plain text file app.txt Doc. Documentation
Accessible without login Plain text file README.md Doc. Documentation

  Files folder image Files (45)  /  restAPI  
File Role Description
Files folder imageControllers (2 files)
Files folder imagehelpers (1 file)
Files folder imagejwt (2 files, 1 directory)
Files folder imagemodels (3 files)
Files folder imageviews (10 files)
  Accessible without login Plain text file .htaccess Data Auxiliary data
  Accessible without login Plain text file composer.json Data Auxiliary data
  Plain text file Control.php Class Class source
  Accessible without login Plain text file index.php Example Example script

  Files folder image Files (45)  /  restAPI  /  Controllers  
File Role Description
  Plain text file Item.php Class Class source
  Plain text file Login.php Class Class source

  Files folder image Files (45)  /  restAPI  /  helpers  
File Role Description
  Accessible without login Plain text file tool_helper.php Example Example script

  Files folder image Files (45)  /  restAPI  /  jwt  
File Role Description
Files folder imagevendor (1 file, 2 directories)
  Accessible without login Plain text file composer.json Data Auxiliary data
  Accessible without login Plain text file composer.lock Data Auxiliary data

  Files folder image Files (45)  /  restAPI  /  jwt  /  vendor  
File Role Description
Files folder imagecomposer (11 files)
Files folder imagefirebase (1 directory)
  Accessible without login Plain text file autoload.php Aux. Auxiliary script

  Files folder image Files (45)  /  restAPI  /  jwt  /  vendor  /  composer  
File Role Description
  Accessible without login Plain text file autoload_classmap.php Aux. Auxiliary script
  Accessible without login Plain text file autoload_namespaces.php Aux. Auxiliary script
  Accessible without login Plain text file autoload_psr4.php Aux. Auxiliary script
  Plain text file autoload_real.php Class Class source
  Plain text file autoload_static.php Class Class source
  Plain text file ClassLoader.php Class Class source
  Accessible without login Plain text file installed.json Data Auxiliary data
  Accessible without login Plain text file installed.php Aux. Auxiliary script
  Plain text file InstalledVersions.php Class Class source
  Accessible without login Plain text file LICENSE Lic. License text
  Accessible without login Plain text file platform_check.php Aux. Auxiliary script

  Files folder image Files (45)  /  restAPI  /  jwt  /  vendor  /  firebase  
File Role Description
Files folder imagephp-jwt (3 files, 1 directory)

  Files folder image Files (45)  /  restAPI  /  jwt  /  vendor  /  firebase  /  php-jwt  
File Role Description
Files folder imagesrc (5 files)
  Accessible without login Plain text file composer.json Data Auxiliary data
  Accessible without login Plain text file LICENSE Lic. License text
  Accessible without login Plain text file README.md Doc. Documentation

  Files folder image Files (45)  /  restAPI  /  jwt  /  vendor  /  firebase  /  php-jwt  /  src  
File Role Description
  Plain text file BeforeValidException.php Class Class source
  Plain text file ExpiredException.php Class Class source
  Plain text file JWK.php Class Class source
  Plain text file JWT.php Class Class source
  Plain text file SignatureInvalidException.php Class Class source

  Files folder image Files (45)  /  restAPI  /  models  
File Role Description
  Plain text file Database.php Class Class source
  Plain text file itemmodel.php Class Class source
  Plain text file usermodel.php Class Class source

  Files folder image Files (45)  /  restAPI  /  views  
File Role Description
  Accessible without login Plain text file item-create.php Aux. Auxiliary script
  Accessible without login Plain text file item-delete.php Aux. Auxiliary script
  Accessible without login Plain text file item-single.php Aux. Auxiliary script
  Accessible without login Plain text file item-update.php Aux. Auxiliary script
  Accessible without login Plain text file login-create.php Aux. Auxiliary script
  Accessible without login Plain text file login-delete.php Aux. Auxiliary script
  Accessible without login Plain text file login-list.php Aux. Auxiliary script
  Accessible without login Plain text file login-single.php Aux. Auxiliary script
  Accessible without login Plain text file login-update.php Aux. Auxiliary script
  Accessible without login Plain text file login.php Aux. Auxiliary script

  Files folder image Files (45)  /  sql  
File Role Description
  Accessible without login Plain text file stable.sql Data Auxiliary data

The PHP Classes site has supported package installation using the Composer tool since 2013, as you may verify by reading this instructions page.
Install with Composer Install with Composer
 Version Control Unique User Downloads Download Rankings  
 100%
Total:61
This week:0
All time:10,477
This week:47Up