macfly/yii2-remote-user-rbac

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

Yii2模块,用于从远程API获取用户和rbac信息

安装量: 1,266

依赖关系: 0

建议者: 0

安全性: 0

星标: 0

关注者: 1

分支: 0

类型:yii2-extension

0.2.1 2017-10-12 11:04 UTC

This package is auto-updated.

Last update: 2023-04-13 03:40:48 UTC


README

从另一个Yii2实例获取用于sso或集中管理用户和角色的Yii2用户和Rbac提供者。

安装

安装此扩展的首选方式是通过 composer

运行以下命令之一:

php composer.phar require --prefer-dist "macfly/yii2-remote-user-rbac" "*"

或者

"macfly/yii2-remote-user-rbac": "*"

将以下内容添加到您的 composer.json 文件的require部分。

配置

注意:请确保您在配置文件中没有 user 组件配置。

按照以下方式配置 config/web.php

  'components' => [
    ................
    'authClientCollection' => [
      'class'   => \yii\authclient\Collection::className(),
      'clients' => [
        'oauth2' => [
          'class'           => 'macfly\authclient\OAuth2',
          'authUrl'         => 'http://127.0.0.1:8888/oauth2/authorize',
          'tokenUrl'        => 'http://127.0.0.1:8888/oauth2/token',
          'apiBaseUrl'      => 'http://127.0.0.1:8888/oauth2',
          'clientId'        => 'testclient',
          'clientSecret'    => 'testpass',
          'requestOptions'  => [
            'sslVerifyPeer' => false,
            'sslVerifyPeerName' => false,
          ],
        ],
      ],
    ],
  ................
  'modules' => [
      ................
      'user'  => [
       'class'       => 'macfly\user\client\Module',
			 'cacheDuration' => 3600,
       'authclient'  => 'oauth2',
       'rememberFor' => 1209600, # Session life (default: 1209600)
       'identityUrl' => 'http://127.0.0.1:8888/user/api/identity', # (optional)
       'rbacUrl'     => 'http://127.0.0.1:8888/user/api/rbac',     # (optional)
#			 'userComponent' => '',
#      'modelMap'    => [],
#      'remoteModelMap' = [
#         'app\models\User' => 'User',
#       ],
      ],
      ................
  ],

使用方法

使用HTTP Bearer token进行认证

HttpBearerAuth是一个动作过滤器,支持基于HTTP Bearer token的认证方法。

您可以通过将HttpBearerAuth附加为控制器或模块的行为来使用HttpBearerAuth,如下所示

public function behaviors()
{
    return [
        'authenticator' => [
            'class' => \macfly\user\client\filters\auth\HttpBearerAuth::className(),
        ],
    ];
}

控制器上的使用示例

curl --header 'Authorization: Bearer 0205ade34ff0b8dab4489059803add3fc9ba5c47' 'http://127.0.0.1:8888/api/publish'

使用HTTP基本认证进行认证

HttpBasicAuth是一个动作过滤器,支持HTTP基本认证方法。

您可以通过将HttpBasicAuth附加为控制器或模块的行为来使用HttpBasicAuth,如下所示

public function behaviors()
{
    return [
        'authenticator' => [
            'class' => \macfly\user\client\filters\auth\HttpBasicAuth::className(),
        ],
    ];
}

控制器上的使用示例

curl 'http://0205ade34ff0b8dab4489059803add3fc9ba5c47:@127.0.0.1:8888/api/publish'

使用查询参数认证进行认证

QueryParamAuth是一个动作过滤器,支持基于通过查询参数传递的访问令牌进行认证。

您可以通过将QueryParamAuth附加为控制器或模块的行为来使用QueryParamAuth,如下所示

public function behaviors()
{
    return [
        'authenticator' => [
            'class' => \macfly\user\client\filters\auth\QueryParamAuth::className(),
        ],
    ];
}

控制器上的使用示例

curl 'http://127.0.0.1:8888/api/publish?access-token=0205ade34ff0b8dab4489059803add3fc9ba5c47'