/PHP_AUTHENTICATION

PHP Authentiation JWT, Basic, API KEY, Digest, Google login, Facebook login

Primary LanguagePHPMIT LicenseMIT

PHP AUTHENTICATION

APP KITA

Simple Library PHP Authentication API


Build Status

Sample Library PHP Authentication Restfull API

  • Support Multi Authentication

new version 2.1

  • add Session auth

    use Appkita\PHPAuth;
    $config = [
        'session' => [
            'session_key'=>'isLogin'
        ]
    ];
    $auth = new Authentication($config);
    $cek = $auth->auth(METHOD::SESSION, function($auth) {
        return ($auth ? true : false);
    });
  • add Google Auth and Facebook Auth

    $configApi = [
        'google' = [
        'clientID' => 'your client id',
        'clientSecret' => 'secret client',
        'redirectUri' => 'redirect url',
      ];
       'facebook' = [
        'clientID' => 'your client id',
        'clientSecret' => 'secret client',
        'redirectUri' => 'redirect url',
      ];
    ]
    
    //identifikasi Facebook Library
    $FB = new \Appkita\PHPAuth\Type\Facebooklogin($configApi);
    //identifikas google library
    $GOOGLE = new \Appkita\PHPAuth\Type\GoogleLogin($this->configApi);
    
    //get FB login url
    function loginFB() {
        header('location:'. $FB->urlLogin());
    }
    
    //get Google Login url
    function loginGoogle() {
        header('location:'. $GOOGLE->urlLogin());
    }
    
    //url callback fb login to verify token
    function verify_fb() {
        return $FB->decode(function($user, $args, $error) {
              die(json_encode($user));
          });
    }
    //url callback fb Google to verify token
    function verify_fb() {
        return $FB->decode(function($user, $args, $error) {
              die(json_encode($user));
          }, []);
    }

    more info [Google Doc] (https://github.com/googleapis/google-api-php-client) more info [Facebook Document] (https://github.com/facebookarchive/php-graph-sdk)

Installation

Dillinger requires PHP v7.0+ to run.

Install composer follow composer

composer require appkita/phpauth

or

Edit composer.json and update composer

{
    "require": {
        "appkita/phpauth": "^0.1.*"
    }
}

Features

  • API KEY Authentication
  • JWT Authentication (Token)
  • Basic Authentication
  • Digest Authentication
  • Google Auth
  • Facebook Auth
  • SESSION

Using

configuration

  $config = [
    'key_header'=>'X-API-KEY', //Delete if you not use API KEY
    //jwt Configuration
    'key'=>'key_JWT',
    'data'=>'username',
    'timeout'=>3600,
    'iss'=>'mydomain.com',
    'aud'=>'mydomain.com',
    'basic_auth'=>[
        'username_key'=>'email',
        'password_key'=>'password'
    ];
  ];
  $auth = new Appkita\PHPAuth\Authentication($config);
  //or
  use Appkita\PHPAuth;
  $auth = new Authentication($config);
  //or configuration default
  $auth = new Authentication();
    $cek = $auth->auth(METHOD, callback);

callback : is function to cek username or key you can set return or die but if you using digest authentication you must return array

return ['username'=>username, 'password'=>password];
    method Support
    METHOD::Key = 'key',
    METHOD::Basic = 'basic',
    METHOD::Digest = 'digest'
    METHOD::Token = 'token' //is JWT Authentication

Example

1. KEY

    $mykey = 'testingkey';
    $cek = $auth->auth(METHOD::KEY, function($key) {
        if ($key === $mykey) {
            return true;
        } else {
            return false;
        }
    });

2. BASIC

    $myusername = 'testingkey';
    $mypassword = 'password';
    $cek = $auth->auth(METHOD::BASIC, function($username, $password) {
        if ($username == $myusername && $mypassword == $password) {
            return true;
        } else {
            return false;
        }
    });

3. DIGEST

    $myusername = 'testingkey';
    $mypassword = 'password';
    $cek = $auth->auth(METHOD::DIGEST, function($username, $password) {
        if ($username == $myusername) {
            return ['username'=>$myusername, 'password'=>$mypassword];
        } else {
            return false;
        }
    });

4. TOKEN (JWT)

    $myusername = 'testingkey';
    $cek = $auth->auth(METHOD::TOKEN, function($username) {
        if ($username == $myusername) {
            return true
        } else {
            return false;
        }
    });

Development

Want to contribute? Great!

Open your favorite Terminal and run these commands.

First Tab:

git clone git@github.com:gunantos/PHP_AUTHENTICATION.git

Second Tab:

cd PHP_AUTHENTICATION
composer install

License

MIT

Sponsor

Pay Coffe