spada/ kong-handler
v2.6
2021-10-15 13:20 UTC
Requires (Dev)
- phpunit/phpunit: ~5.0
README
用于处理Kong头信息和覆盖底层认证机制的包
安装
使用Composer安装
composer require spada/kong-handler
使用方法
注册KongServiceProvider
。确保您没有注册任何AuthServiceProvider。
use Spada\KongHandler\KongHandlerServiceProvider;
return [
'providers' => [
//
// other service providers
//
KongHandlerServiceProvider::class
]
];
现在,我们可以像平常一样使用认证。
// get kwuid
$kwuid = Auth::user()->getKey();
// get user access token
$token = Auth::user()->getToken();
// check if authenticated
$authenticated = Auth::check();
// get user info
// get name
$email = Auth::user()->getInfo()->getName();
// get email
$email = Auth::user()->getInfo()->getEmail();
添加了处理服务账户的方法
// check if its service account
Auth::user()->isService();
// get service account consumer
Auth::user()->getConsumer();
// get service account audience
Auth::user()->getAudience();
测试
对于本地测试,您需要提供以下一些头信息
头信息 | OneLogin 消费者 | 服务账户消费者 | 值 |
---|---|---|---|
认证 | :heavy_check_mark | :heavy_check_mark | 示例: Bearer abcd |
x-userinfo | :heavy_check_mark | :heavy_multiplication_x | 示例: {\"given_name\":\"kelle1\",\"updated_at\":\"2018-01-23T07:19:36.950Z\",\"family_name\":\"kelle1\",\"preferred_username\":\"kelle1\",\"custom_fields\":{\"KW_UID\":\"556396\",\"KW_OID\":\"101\"},\"email\":\"kelle1@kw.com\",\"name\":\"kelle1 kelle1\",\"sub\":\"37087183\"} |
内容类型 | :heavy_check_mark | :heavy_check_mark | application/json |
x-consumer-username | :heavy_check_mark | :heavy_check_mark | 示例: onelogin |
OneLogin的示例头信息
accept: application/vnd.api+json
authorization: Bearer ODIyZmQ4MjctZThmYy00Nzc1LWJiNDAtNGIxYTA5YTZmNGU25pyUpO04RVRCsV9R-cmOwOZuKefUlRLBPYYkwOzQayVSfBf57tankKkY8DMXAwKdlYHYTKZX190j9I35kGr_kg
cache-control: no-cache
content-type: application/vnd.api+json
x-consumer-username: onelogin
x-userinfo: {\"given_name\":\"kelle1\",\"updated_at\":\"2018-01-23T07:19:36.950Z\",\"family_name\":\"kelle1\",\"preferred_username\":\"kelle1\",\"custom_fields\":{\"KW_UID\":\"556396\",\"KW_OID\":\"101\"},\"email\":\"kelle1@kw.com\",\"name\":\"kelle1 kelle1\",\"sub\":\"37087183\"}
服务账户的示例头信息
x-consumer-aid:testing
x-consumer-token-audience:https://dev-kong.command-api.kw.com
x-consumer-token-user-id:37849
x-consumer-token-user-email:name=Gail Anderson;email=gandersoniw@yahoo.com
x-consumer-username:testing
x-consumer-id:9bdf5a6e-775b-434d-9922-9987524e712d
authorization:Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhaWQiOiJ0ZXN0aW5nIiwiYXVkIjoiaHR0cHM6Ly9kZXYta29uZy5jb21tYW5kLWFwaS5rdy5jb20iLCJleHAiOjE2MDMxMjEzMjYsImlhdCI6MTUyODQyOTQ1NSwiaXNzIjoiZ0NWbVZJbFVBc0dpSzJxd2tZMXpveFRRRVBHdU9ERDAiLCJuYmYiOjE1Mjg0Mjk0NTUsInN1YiI6Im5hbWU9R2FpbCBBbmRlcnNvbjtlbWFpbD1nYW5kZXJzb25pd0B5YWhvby5jb20iLCJ1aWQiOiIzNzg0OSJ9.ci1-EFSraTWV06-6v_NN7QBcK5Bs6DgqruMMTpQRJ_U
content-type:application/vnd.api+json
其他
有关Kong消费者如何工作的更多信息,请阅读https://github.com/KWRI/aOS/wiki/Misc-:-Kong-Consumer-and-OIDC-Plugin