innocode-digital / wp-inncognito
Login and Registration with user's AWS Cognito account.
Installs: 2 738
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 10
Forks: 1
Type:wordpress-muplugin
Requires
- php: >=7.1
- ext-json: *
- aws/aws-sdk-php: ^3.222
- endroid/qr-code: ^4.3
- firebase/php-jwt: ^6.0
- paragonie/sodium_compat: ^1.17
Requires (Dev)
- innocode-digital/php-cs: ^1.0
- squizlabs/php_codesniffer: ^3.7
README
Description
Login and Registration with user's AWS Cognito account.
Install
-
Preferable way is to use Composer:
composer require innocode-digital/wp-inncognito
By default, it will be installed as Must Use Plugin. It's possible to control with
extra.installer-paths
incomposer.json
. -
Alternate way is to clone this repo to
wp-content/mu-plugins/
orwp-content/plugins/
:cd wp-content/plugins/ git clone git@github.com:innocode-digital/inncognito.git cd inncognito/ composer install
If plugin was installed as regular plugin then activate AWS Lambda Prerender from Plugins page
or WP-CLI: wp plugin activate inncognito
.
Configuration
Add the following constants to wp-config.php
:
define( 'INNCOGNITO_DOMAIN', '' ); // Either domain or fully qualified URL (Cognito or custom).
define( 'INNCOGNITO_CLIENT_ID', '' );
define( 'INNCOGNITO_CLIENT_SECRET', '' );
define( 'INNCOGNITO_REGION', '' ); // e.g. eu-west-1
define( 'INNCOGNITO_USER_POOL_ID', '' );
Usage
Change callback URL:
define( 'INNCOGNITO_REDIRECT_URI', 'https://another-site.com/login/' );
Use case could be when e.g. you do not want to be limited with callback URL requirement (it's required to set all callbacks in Cognito settings) but want to use one with custom redirects handling.
Change login URL to custom endpoint:
define( 'INNCOGNITO_ENDPOINT', 'cognito' ); // default: 'inncognito'
Change session cookie name:
define( 'INNCOGNITO_COOKIE', 'cognito' ); // default: 'inncognito'
Session is used to handle actions and redirects, prevent CSRF attacks.
Force users to log in with their AWS Cognito account:
define( 'INNCOGNITO_FORCE_COGNITO', true );
Works for users who were logged in with SSO at least once.
Disable registration through AWS Cognito during SSO:
define( 'INNCOGNITO_DISALLOW_REGISTRATION', true );