Updated to enforce nonce in example and documentaion

This commit is contained in:
Andy Dixon
2026-03-10 09:50:34 +00:00
parent 6b67bf574d
commit 986dc95646
3 changed files with 11 additions and 3 deletions
+3 -1
View File
@@ -79,7 +79,7 @@ $client = new AuthClient($config);
// Step 1: redirect user to provider
$auth = $client->buildAuthorisationUrl([
'extra' => [
// Some providers require nonce for OIDC requests.
// Include nonce in the authorisation request for OIDC.
'nonce' => rtrim(strtr(base64_encode(random_bytes(32)), '+/', '-_'), '='),
],
]);
@@ -87,6 +87,8 @@ header('Location: ' . $auth['url']);
exit;
```
The generated authorisation request URL will include `nonce=...` alongside `state`, `scope`, and the PKCE parameters.
For callback handling, see `docs/INTEGRATION_GUIDE.md`.
For provider-side threat/invariant assumptions, see `docs/SECURITY_MODEL.md`.
+3 -1
View File
@@ -27,7 +27,7 @@ $client = new AuthClient(Config::fromArray([
if (!isset($_SESSION['user'])) {
$auth = $client->buildAuthorisationUrl([
'extra' => [
// Some providers require nonce for OIDC requests.
// Include nonce in the authorisation request for OIDC.
'nonce' => rtrim(strtr(base64_encode(random_bytes(32)), '+/', '-_'), '='),
],
]);
@@ -41,6 +41,8 @@ if (!isset($_SESSION['user'])) {
echo 'Already signed in.';
```
The resulting redirect request includes `nonce=...` in the provider authorisation URL, together with `state`, `code_challenge`, and the rest of the OAuth/OIDC query parameters.
## 2. Handle callback
```php
+5 -1
View File
@@ -39,7 +39,11 @@ if (isset($_GET['logout'])) {
}
if (!isset($_SESSION['user'])) {
$authData = $auth->getAuthorizationUrl();
$authData = $auth->getAuthorizationUrl([
'extra' => [
'nonce' => rtrim(strtr(base64_encode(random_bytes(32)), '+/', '-_'), '='),
],
]);
header('Location: ' . $authData['url']);
exit;
}