PHP code example of coretrekas / idp

1. Go to this page and download the library: Download coretrekas/idp library. Choose the download type require.

2. Extract the ZIP file and open the index.php.

3. Add this code to the index.php.
    
        
<?php
require_once('vendor/autoload.php');

/* Start to develop here. Best regards https://php-download.com/ */

    

coretrekas / idp example snippets


$token = \Coretrek\Idp\Token::make('https://idp-server.com', 'client_id', 'client_secret', ['*']);

// Or...

$token = new \Coretrek\Idp\Token('Bearer', 'ACCESS-TOKEN', 10000);

// Properties.
$token->type;
$token->accessToken;
$token->expiresIn;

$token->toArray();

// Returns:
// [
//     'token_type' => 'Bearer',
//     'expires_in' => 10000,
//     'access_token' => 'ACCESS-TOKEN',
// ]

$sdk = new \Coretrek\Idp\Sdk($token, 'https://idp-server.com', 'nb');

// Plain sdk
$sdk->users()->list();
$sdk->users()->list($perPage = 25);
$sdk->users()->list($filters = ['first_name' => 'John']);
$sdk->users()->list($perPage = 25, $filters = ['first_name' => 'John']);

// Laravel facade
\Coretrek\Idp\Facades\Sdk::users()->list();

// Plain sdk
$sdk->users()->show('986b24bb-655a-4fc5-9608-8a8aba83b2dd');
$sdk->users()->show('986b24bb-655a-4fc5-9608-8a8aba83b2dd', $

// Plain sdk
$sdk->users()->create([
    'first_name' => 'John',
    'last_name' => 'Doe',
    'email' => '[email protected]',
    'mobile' => '+4795916561',
    'password' => 'Password1',
    'locale' => 'nb',
    'email_verified_at' => '2023-01-01 10:00:00',
    'two_factor_secret' => 'abc123',
    'two_factor_recovery_codes' => 'abc123 acd 321',
    'meta' => [
        'foo' => 'bar',
    ],
]);

// Laravel facade
\Coretrek\Idp\Facades\Sdk::users()->create();

// Plain sdk
$sdk->users()->onlyValidate()->create([
    'first_name' => 'John',
    'last_name' => 'Doe',
    'email' => '[email protected]',
    'mobile' => '+4795916561',
    'password' => 'Password1',
    'locale' => 'nb',
    'email_verified_at' => '2023-01-01 10:00:00',
    'two_factor_secret' => 'abc123',
    'two_factor_recovery_codes' => 'abc123 acd 321',
    'meta' => [
        'foo' => 'bar',
    ],
]);

// Laravel facade
\Coretrek\Idp\Facades\Sdk::users()->onlyValidate()->create();

// Plain sdk
$sdk->users()->update('986b24bb-655a-4fc5-9608-8a8aba83b2dd', [
    'first_name' => 'John',
    'last_name' => 'Doe',
    'email' => '[email protected]',
    'mobile' => '+4795916561',
    'password' => 'Password1',
    'locale' => 'nb',
    'email_verified_at' => '2023-01-01 10:00:00',
    'two_factor_secret' => 'abc123',
    'two_factor_recovery_codes' => 'abc123 acd 321',
    'meta' => [
        'foo' => 'bar',
    ],
]);

// Laravel facade
\Coretrek\Idp\Facades\Sdk::users()->update();

// Plain sdk
$sdk->users()->onlyValidate()->update('986b24bb-655a-4fc5-9608-8a8aba83b2dd', [
    'first_name' => 'John',
    'last_name' => 'Doe',
    'email' => '[email protected]',
    'mobile' => '+4795916561',
    'password' => 'Password1',
    'locale' => 'nb',
    'email_verified_at' => '2023-01-01 10:00:00',
    'two_factor_secret' => 'abc123',
    'two_factor_recovery_codes' => 'abc123 acd 321',
    'meta' => [
        'foo' => 'bar',
    ],
]);

// Laravel facade
\Coretrek\Idp\Facades\Sdk::users()->onlyValidate()->update();

// Plain sdk
$sdk->users()->delete('986b24bb-655a-4fc5-9608-8a8aba83b2dd');

// Laravel facade
\Coretrek\Idp\Facades\Sdk::users()->delete('986b24bb-655a-4fc5-9608-8a8aba83b2dd');

// Plain sdk
$sdk->groups()->list();
$sdk->groups()->list($perPage = 25);
$sdk->groups()->list($filters = ['identifier' => 123]);
$sdk->groups()->list($perPage = 25, $filters = ['identifier' => 123]);

// Laravel facade
\Coretrek\Idp\Facades\Sdk::groups()->list();

// Plain sdk
$sdk->groups()->show('986b24bb-655a-4fc5-9608-8a8aba83b2dd');
$sdk->groups()->show('986b24bb-655a-4fc5-9608-8a8aba83b2dd', $

// Plain sdk
$sdk->groups()->create([
    'name' => 'Group A',
    'description' => 'Description of the group A',
    'identifier' => '000000000',
    'meta' => [
        'foo' => 'bar',
    ],
]);

// Laravel facade
\Coretrek\Idp\Facades\Sdk::groups()->create();

// Plain sdk
$sdk->groups()->onlyValidate()->create([
    'name' => 'Group A',
    'description' => 'Description of the group A',
    'identifier' => '000000000',
    'meta' => [
        'foo' => 'bar',
    ],
]);

// Laravel facade
\Coretrek\Idp\Facades\Sdk::groups()->onlyValidate()->create();

// Plain sdk
$sdk->users()->update('986b24bb-655a-4fc5-9608-8a8aba83b2dd', [
    'name' => 'Group A',
    'description' => 'Description of the group A',
    'identifier' => '000000000',
    'meta' => [
        'foo' => 'bar',
    ],
]);

// Laravel facade
\Coretrek\Idp\Facades\Sdk::users()->update();

// Plain sdk
$sdk->users()->onlyValidate()->update('986b24bb-655a-4fc5-9608-8a8aba83b2dd', [
    'name' => 'Group A',
    'description' => 'Description of the group A',
    'identifier' => '000000000',
    'meta' => [
        'foo' => 'bar',
    ],
]);

// Laravel facade
\Coretrek\Idp\Facades\Sdk::users()->onlyValidate()->update();

// Plain sdk
$sdk->groups()->delete('986b24bb-655a-4fc5-9608-8a8aba83b2dd');

// Laravel facade
\Coretrek\Idp\Facades\Sdk::groups()->delete('986b24bb-655a-4fc5-9608-8a8aba83b2dd');

// Plain sdk
$sdk->groups()->addUser('986b24bb-655a-4fc5-9608-8a8aba83b2dd', '8a8aba83b2dd-655a-4fc5-9608-986b24bb', $meta = ['foo' => 'bar']);

// Laravel facade
\Coretrek\Idp\Facades\Sdk::groups()->addUser('986b24bb-655a-4fc5-9608-8a8aba83b2dd', '8a8aba83b2dd-655a-4fc5-9608-986b24bb', $meta = ['foo' => 'bar']);

// Plain sdk
$sdk->groups()->updateUser('986b24bb-655a-4fc5-9608-8a8aba83b2dd', '8a8aba83b2dd-655a-4fc5-9608-986b24bb', $meta = ['foo' => 'bar']);

// Laravel facade
\Coretrek\Idp\Facades\Sdk::groups()->updateUser('986b24bb-655a-4fc5-9608-8a8aba83b2dd', '8a8aba83b2dd-655a-4fc5-9608-986b24bb', $meta = ['foo' => 'bar']);

// Plain sdk
$sdk->groups()->removeUser('986b24bb-655a-4fc5-9608-8a8aba83b2dd', '8a8aba83b2dd-655a-4fc5-9608-986b24bb');

// Laravel facade
\Coretrek\Idp\Facades\Sdk::groups()->removeUser('986b24bb-655a-4fc5-9608-8a8aba83b2dd', '8a8aba83b2dd-655a-4fc5-9608-986b24bb');

// Plain sdk
$sdk->get('https://idp-server.com/api/users?per_page=25&page=2');

// Laravel facade
\Coretrek\Idp\Facades\Sdk::get('https://idp-server.com/api/users?per_page=25&page=2');

// /config/services.php
[
    //...
    'coretrek' => [
        'client_id' => '986b2415-d423-447d-8d32-e83ee78d7d66',
        'client_secret' => 'SsEeArd2b8ILJ1TJmDfDyX24PNx6yB6sY86twhO4',
        'redirect' => 'http://coretrek-idp-client.test/auth/callback',
    ]
]

use Laravel\Socialite\Facades\Socialite;

Route::get('/auth/redirect', function () {
    return Socialite::driver('coretrek')->redirect();
});

Route::get('/auth/callback', function () {
    $user = Socialite::driver('coretrek')->user();

    // $user->token
});