2017 © Pedro PelĂĄez
 

library pws-auth

PwsAuth is an authentication protocol throught http header designed to web services

image

meta-tech/pws-auth

PwsAuth is an authentication protocol throught http header designed to web services

  • Wednesday, September 20, 2017
  • by Meta-Tech
  • Repository
  • 1 Watchers
  • 1 Stars
  • 466 Installations
  • PHP
  • 2 Dependents
  • 0 Suggesters
  • 0 Forks
  • 0 Open issues
  • 6 Versions
  • 1 % Grown

The README.md

PwsAuth

PwsAuth is an authentication protocol throught http header designed to web services, (*1)

Request Headers

Request headers must be define as follow :, (*2)

Pws-Authorization : $type $token
Pws-Ident : $userkey

The $token can be either a loginToken or a sessionToken, (*3)

The $token is divided in four part, (*4)

  • a datetime formatted with the Authenticator::DATE_FORMAT format
  • an obfuscate part 's token builded by date, common salt & the third token 's part
  • a loginToken representing a user signed token for a specific login at given date OR a session token representing the session id
  • noise data to be removed

The complete token is valid only if obfuscate part can be rebuild.
This simple mecanism ensure that sessionId is valid and can be safety load, (*5)

Authenticator 's configuration comes with a hash.session.index and hash.noise.length values wich can be redefined to move the session token part into the complete token, (*6)

                                                    << hash.session.index >>                             << hash.noise.length >>
|-----------------------------------------------------------<<-^->>---------------------------------------------<<-^->>--------|
|- type ||-- date ---|------------ obfuscate token ---------<<-^->>-------------- session token ----------------<<-^->> noise -|
|       ||     1     |                    2                    |                         3                         |     4     |
 PwsAuth2 242003031711e1a6104135f04c6c01e6cd5952ecafbb53c928603b0gb64tqo609qse6ovd7lhdvk4fnaqk7cdl26e4d4qh7jb41eu5f1zb5y79m8pgu3

Requirements

PHP >= 5.4, (*7)

Install

The package can be installed using Composer ., (*8)

composer require meta-tech/pws-auth

Or add the package to your composer.json., (*9)

"require": {
    "meta-tech/pws-auth" : "^2.1"
}

Authenticator instanciation

<?php
require_once(__dir__ . '/vendor/autoload.php');

use Symfony\Component\Yaml\Yaml;
use MetaTech\PwsAuth\Authenticator;

$config        = Yaml::parse(file_get_contents(__dir__ . '/config/pwsauth.yml'));
$authenticator = new Authenticator($config);

ClientSide

A request header can be generated via the generateHeader($login, $key, $sessid=null) method.
The third parameter determine wich kind of token will be generated, (*10)

for a client usage, see  MetaTech\Ws\Client , (*11)

ServerSide

The Token can be retriew via the getToken method, (*12)

loginToken is validate by the check(Token $token = null, $login) method
loginToken must match a public url with method POST and a couple of login/password
On successfull login, the session id must be transmit to the client., (*13)

sessionToken is valid only if the session can effectively be loaded, and the user key match the given Pws-Ident value, (*14)

for a server usage, see MetaTech\Silex\Ws\Authentication and meta-tech/pws-server ., (*15)

Configuration

Configuration must be the same on server and client sides
Hash definition is a convenient way to obfuscate your tokens, (*16)

config/pwsauth.yml, (*17)


type : PwsAuth2 header : auth : Pws-Authorization ident : Pws-Ident salt : common : jK5#p9Mh5.Zv} # used for generating user specific salt user.index : 10 user.length : 12 hash : sep : / algo : sha256 # effective token length size. out of bound data is simply noise length : 52 # session index (or obfuscate length) session.index : 58 # ending noise data length) noise.length : 12

Notes

A valid $userkey alone is useless
A valid $sessionId alone is useless, (*18)

License

The project is released under the MIT license, see the LICENSE file., (*19)

The Versions

20/09 2017

dev-master

9999999-dev https://github.com/meta-tech/pws-auth

PwsAuth is an authentication protocol throught http header designed to web services

  Sources   Download

MIT

The Requires

  • php >=5.4

 

authentication http webservice protocol pwsauth

20/09 2017

2.1.4

2.1.4.0 https://github.com/meta-tech/pws-auth

PwsAuth is an authentication protocol throught http header designed to web services

  Sources   Download

MIT

The Requires

  • php >=5.4

 

authentication http webservice protocol pwsauth

21/03 2017

2.1.3

2.1.3.0 https://github.com/meta-tech/pws-auth

PwsAuth is an authentication protocol throught http header designed to web services

  Sources   Download

MIT

The Requires

  • php >=5.4

 

authentication http webservice protocol pwsauth

20/03 2017

2.1.2

2.1.2.0 https://github.com/meta-tech/pws-auth

PwsAuth is an authentication protocol throught http header designed to web services

  Sources   Download

MIT

The Requires

  • php >=5.4

 

authentication http webservice protocol pwsauth

15/03 2017

2.1.1

2.1.1.0 https://github.com/meta-tech/pws-auth

PwsAuth is an authentication protocol throught http header designed to web services

  Sources   Download

MIT

The Requires

  • php >=5.4

 

authentication http webservice protocol pwsauth

15/03 2017

2.1.0

2.1.0.0 https://github.com/meta-tech/pws-auth

PwsAuth is an authentication protocol throught http header designed to web services

  Sources   Download

MIT

The Requires

 

authentication http webservice protocol pwsauth