innocode-digital/wp-github-oauth

此包已被弃用,不再维护。未建议替代包。

允许通过Github OAuth应用以组织和个人团队为限制进行单点登录到WordPress。

安装次数: 5,965

依赖项: 0

建议者: 0

安全: 0

星标: 0

关注者: 2

分支: 0

类型:wordpress-muplugin

1.2.3 2019-12-05 16:25 UTC

This package is auto-updated.

Last update: 2023-06-06 04:15:34 UTC


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 );