appkita / phpauth
:Small library PHP for authentication support facebook, google, key, jwt, diggest, basic and session
Fund package maintenance!
gunantos
sponsor.app-kita.net
Requires
- php: >=7.0
- firebase/php-jwt: ^5.2
Requires (Dev)
- facebook/graph-sdk: ^5.7
- google/apiclient: 2.12.1
- phpunit/phpunit: ^9.5
README
Simple Library PHP Authentication API
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