macfly / yii2-remote-user-rbac
此包已废弃,不再维护。未建议替代包。
Yii2模块,用于从远程API获取用户和rbac信息
0.2.1
2017-10-12 11:04 UTC
Requires
- yiisoft/yii2: ~2.0.5
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'