innocode-digital / wp-github-oauth
此包已被弃用,不再维护。未建议替代包。
允许通过Github OAuth应用以组织和个人团队为限制进行单点登录到WordPress。
1.2.3
2019-12-05 16:25 UTC
Requires
- php: >=7.1
- composer/installers: ~1.0
- knplabs/github-api: ^2.12
- league/oauth2-github: ^2.0
- php-http/guzzle6-adapter: ^1.1
README
描述
允许通过Github OAuth应用以组织和团队为限制进行WordPress的单点登录。
安装
-
首选方法是使用Composer
composer require innocode-digital/wp-github-oauth
默认情况下,它将被安装为必用插件。但可以通过
composer.json
中的extra.installer-paths
来控制。 -
另一种方法是克隆此仓库到
wp-content/mu-plugins/
或wp-content/plugins/
cd wp-content/plugins/ git clone git@github.com:innocode-digital/wp-github-oauth.git cd wp-github-oauth/ composer install
如果插件作为常规插件安装,则从插件页面或WP-CLI激活“Github OAuth”:wp plugin activate wp-github-oauth
。
使用
添加所需的常量(通常在wp-config.php
中)
define( 'GITHUB_OAUTH_CLIENT_ID', '' );
define( 'GITHUB_OAUTH_CLIENT_SECRET', '' );
define( 'GITHUB_OAUTH_ORGANIZATION', 123456 ); // Organization ID
define( 'GITHUB_OAUTH_TEAMS2ROLES', [
'super_admin' => [
123456, 234567,
], // Applicable to Multisite, will be the same as 'administrator' for single sites
'administrator' => [
345678,
],
'editor' => [
456789, 567890, 654321,
],
] );
重要:在GITHUB_OAUTH_TEAMS2ROLES
中的键与角色(见角色和权限)相等,应该按照能力从大到小排序,因为当用户属于不同的团队时,将使用第一个匹配项。
文档
默认情况下,认证URL使用github
作为端点,但可以通过常量进行更改
define( 'INNOCODE_GITHUB_OAUTH_ENDPOINT', '' );
可以更改Github OAuth作用域
add_filter( 'innocode_github_oauth_scope', function ( array $scope ) {
return $scope; // Default is array containing 'user:email' and 'read:org'.
} );
可以更改应添加端点的位置
add_filter( 'innocode_github_oauth_endpoint_mask', function ( $mask, $endpoint ) {
return $mask; // Default is EP_ROOT constant.
}, 10, 2 );
检查用户是否使用了Github OAuth
innocode_github_oauth()->is_identified( $user_id );