Sample Library PHP Authentication Restfull API
- Support Multi Authentication
-
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)
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.*"
}
}
- API KEY Authentication
- JWT Authentication (Token)
- Basic Authentication
- Digest Authentication
- Google Auth
- Facebook Auth
- SESSION
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
$mykey = 'testingkey';
$cek = $auth->auth(METHOD::KEY, function($key) {
if ($key === $mykey) {
return true;
} else {
return false;
}
});
$myusername = 'testingkey';
$mypassword = 'password';
$cek = $auth->auth(METHOD::BASIC, function($username, $password) {
if ($username == $myusername && $mypassword == $password) {
return true;
} else {
return false;
}
});
$myusername = 'testingkey';
$mypassword = 'password';
$cek = $auth->auth(METHOD::DIGEST, function($username, $password) {
if ($username == $myusername) {
return ['username'=>$myusername, 'password'=>$mypassword];
} else {
return false;
}
});
$myusername = 'testingkey';
$cek = $auth->auth(METHOD::TOKEN, function($username) {
if ($username == $myusername) {
return true
} else {
return false;
}
});
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
MIT