Adds a WordPress plugin that places a customisable "Sign in with Microsoft" button on wp-login.php and signs existing users in via the OpenID Connect authorization code flow with PKCE. Users are matched by e-mail address only; no accounts are created. Security: single-use state/nonce bound to an HttpOnly cookie, ID token signature verification against Microsoft's JWKS (RS256 only) with issuer/audience/tenant/expiry/nonce checks, optional tenant pinning, account binding to the Microsoft object ID, e-mail domain allow-list, client secret encrypted at rest (AES-256-GCM). Admin: settings screen with connection, button and security tabs, live button preview, colour presets, media-library icon picker, redirect URI copy button and tenant connectivity test. Packaging for WordPress.org: readme.txt with External services section, GPL-2.0 license, uninstall.php, POT + German translations, .distignore, build script, PHPCS config and CI running Plugin Check. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01JJxAHYdMfKPoN4koRc4Ci2
20 lines
558 B
JavaScript
20 lines
558 B
JavaScript
/* M365 Login – moves the button block directly below the login form. */
|
||
( function () {
|
||
'use strict';
|
||
|
||
function place() {
|
||
var block = document.getElementById( 'm365-login-block' );
|
||
var form = document.getElementById( 'loginform' );
|
||
if ( ! block || ! form || ! form.parentNode ) {
|
||
return;
|
||
}
|
||
form.parentNode.insertBefore( block, form.nextSibling );
|
||
document.body.classList.add( 'm365-login-attached' );
|
||
}
|
||
|
||
if ( 'loading' === document.readyState ) {
|
||
document.addEventListener( 'DOMContentLoaded', place );
|
||
} else {
|
||
place();
|
||
}
|
||
}() );
|