update
This commit is contained in:
@@ -1,12 +1,12 @@
|
||||
{
|
||||
"name": "stevenmaguire\/oauth2-keycloak",
|
||||
"name": "stevenmaguire/oauth2-keycloak",
|
||||
"description": "Keycloak OAuth 2.0 Client Provider for The PHP League OAuth2-Client",
|
||||
"license": "MIT",
|
||||
"authors": [
|
||||
{
|
||||
"name": "Steven Maguire",
|
||||
"email": "stevenmaguire@gmail.com",
|
||||
"homepage": "https:\/\/github.com\/stevenmaguire"
|
||||
"homepage": "https://github.com/stevenmaguire"
|
||||
}
|
||||
],
|
||||
"keywords": [
|
||||
@@ -19,22 +19,22 @@
|
||||
],
|
||||
"require": {
|
||||
"php": "~7.2 || ~8.0",
|
||||
"league\/oauth2-client": "^2.0",
|
||||
"firebase\/php-jwt": "^6.0"
|
||||
"league/oauth2-client": "^2.0",
|
||||
"firebase/php-jwt": "^6.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"phpunit\/phpunit": "~9.6.4",
|
||||
"mockery\/mockery": "~1.5.0",
|
||||
"squizlabs\/php_codesniffer": "~3.7.0"
|
||||
"phpunit/phpunit": "~9.6.4",
|
||||
"mockery/mockery": "~1.5.0",
|
||||
"squizlabs/php_codesniffer": "~3.7.0"
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Pshowsso\\Scope68f5e85e9608b\\Stevenmaguire\\OAuth2\\Client\\": "src\/"
|
||||
"Stevenmaguire\\OAuth2\\Client\\": "src/"
|
||||
}
|
||||
},
|
||||
"autoload-dev": {
|
||||
"psr-4": {
|
||||
"Pshowsso\\Scope68f5e85e9608b\\Stevenmaguire\\OAuth2\\Client\\Test\\": "test\/src\/"
|
||||
"Stevenmaguire\\OAuth2\\Client\\Test\\": "test/src/"
|
||||
}
|
||||
},
|
||||
"extra": {
|
||||
|
||||
@@ -1,35 +1,53 @@
|
||||
<?php
|
||||
|
||||
require 'vendor/autoload.php';
|
||||
|
||||
require 'vendor/autoload.php';
|
||||
\session_start();
|
||||
$provider = new \Pshowsso\Scope68f5e85e9608b\Stevenmaguire\OAuth2\Client\Provider\Keycloak(['authServerUrl' => '', 'realm' => '', 'clientId' => '', 'clientSecret' => '', 'redirectUri' => '', 'encryptionAlgorithm' => null, 'encryptionKey' => null, 'encryptionKeyPath' => null]);
|
||||
if (!isset($_GET['code'])) {
|
||||
// If we don't have an authorization code then get one
|
||||
$authUrl = $provider->getAuthorizationUrl();
|
||||
$_SESSION['oauth2state'] = $provider->getState();
|
||||
\header('Location: ' . $authUrl);
|
||||
exit;
|
||||
// Check given state against previously stored one to mitigate CSRF attack
|
||||
} elseif (empty($_GET['state']) || $_GET['state'] !== $_SESSION['oauth2state']) {
|
||||
unset($_SESSION['oauth2state']);
|
||||
exit('Invalid state, make sure HTTP sessions are enabled.');
|
||||
} else {
|
||||
// Try to get an access token (using the authorization coe grant)
|
||||
try {
|
||||
$token = $provider->getAccessToken('authorization_code', ['code' => $_GET['code']]);
|
||||
} catch (\Exception $e) {
|
||||
exit('Failed to get access token: ' . $e->getMessage());
|
||||
}
|
||||
// Optional: Now you have a token you can look up a users profile data
|
||||
try {
|
||||
// We got an access token, let's now get the user's details
|
||||
$user = $provider->getResourceOwner($token);
|
||||
// Use these details to create a new profile
|
||||
\printf('Hello %s!\n<br>', $user->getName());
|
||||
} catch (\Exception $e) {
|
||||
exit('Failed to get resource owner: ' . $e->getMessage());
|
||||
}
|
||||
// Use this to interact with an API on the users behalf
|
||||
echo $token->getToken();
|
||||
session_start();
|
||||
|
||||
$provider = new Stevenmaguire\OAuth2\Client\Provider\Keycloak([
|
||||
'authServerUrl' => '',
|
||||
'realm' => '',
|
||||
'clientId' => '',
|
||||
'clientSecret' => '',
|
||||
'redirectUri' => '',
|
||||
'encryptionAlgorithm' => null,
|
||||
'encryptionKey' => null,
|
||||
'encryptionKeyPath' => null
|
||||
]);
|
||||
|
||||
if (!isset($_GET['code'])) {
|
||||
// If we don't have an authorization code then get one
|
||||
$authUrl = $provider->getAuthorizationUrl();
|
||||
$_SESSION['oauth2state'] = $provider->getState();
|
||||
header('Location: '.$authUrl);
|
||||
exit;
|
||||
|
||||
// Check given state against previously stored one to mitigate CSRF attack
|
||||
} elseif (empty($_GET['state']) || ($_GET['state'] !== $_SESSION['oauth2state'])) {
|
||||
unset($_SESSION['oauth2state']);
|
||||
exit('Invalid state, make sure HTTP sessions are enabled.');
|
||||
} else {
|
||||
// Try to get an access token (using the authorization coe grant)
|
||||
try {
|
||||
$token = $provider->getAccessToken('authorization_code', [
|
||||
'code' => $_GET['code']
|
||||
]);
|
||||
} catch (Exception $e) {
|
||||
exit('Failed to get access token: '.$e->getMessage());
|
||||
}
|
||||
|
||||
// Optional: Now you have a token you can look up a users profile data
|
||||
try {
|
||||
|
||||
// We got an access token, let's now get the user's details
|
||||
$user = $provider->getResourceOwner($token);
|
||||
// Use these details to create a new profile
|
||||
printf('Hello %s!\n<br>', $user->getName());
|
||||
|
||||
} catch (Exception $e) {
|
||||
exit('Failed to get resource owner: '.$e->getMessage());
|
||||
}
|
||||
|
||||
// Use this to interact with an API on the users behalf
|
||||
echo $token->getToken();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user