sympla / mesa-gold-bar
一个提供从oauth2访问令牌进行远程用户识别的库。
3.2.5
2019-05-23 20:33 UTC
Requires
- container-interop/container-interop: *
- firebase/php-jwt: ^5.0
- guzzlehttp/guzzle: ~6.0
- psr/http-message: ~1.0
Requires (Dev)
- phpunit/phpunit: ~6.0
- dev-master
- 3.2.5
- 3.2.4
- 3.2.3
- 3.2.2
- 3.2.1
- 3.2.0
- 3.1.9
- 3.1.8
- 3.1.7
- 3.1.6
- 3.1.5
- 3.1.4
- 3.1.3
- 3.1.2
- 3.1.1
- 3.1.0
- 3.0.1
- 3.0
- 2.0
- 1.0.3
- 1.0.2
- 1.0.1
- 1.0
- dev-task/lumen-provider
- dev-fix/remove-oauth-index-from-token
- dev-fix/checkIfPublicKeyPathExists
- dev-feature/addJWTSupport
- dev-fix/checkProvider
- dev-feature/ClientProviderAndDomainCheck
- dev-feature/add-auth-method
- dev-fix-not-authorized-response
- dev-dev
This package is not auto-updated.
Last update: 2024-09-28 19:58:08 UTC
README
Mesa Gold是一家位于Westworld Mesa Hub的度假村和酒吧。游客在参观公园结束后在此放松。
这个库可以帮助通过访问令牌识别用户。
安装
使用composer安装此包
$ composer require sympla/mesa-gold-bar ~3.0
这就完成了。
用法
认证器在其构造函数中接收两个参数:一个Guzzle客户端和一个字符串形式的认证端点。构建完成后,您可以使用原始令牌或PSR-7请求对象来识别用户
<?php require_once "vendor/autoload.php"; use Sympla\Auth\OAuth2RemoteAuthentication; $authenticator = new OAuth2RemoteAuthentication( new GuzzleHttp\Client, 'https://example.com/api/whoami' ); //Gets the user from the request object $request = Request::createFromGlobals(); // hydrates the psr-7 request object $user = $authenticator->getUserFromRequest($request); // Or, alternatively, gets the user from the token directly: $token = explode(" ", $_SERVER['HTTP_AUTHORIZATION'])[1]; $user = $authenticator->getUserFromToken($token); var_dump($user); // dumps information fetched from the endpoint server about the user.
中间件
该库现在还有一个用于检索用户凭据的SlimMiddleware。
只需添加中间件
<?php #middleware.php $app->add(new \Sympla\Auth\Middleware\SlimMiddleware( new \GuzzleHttp\Client, $app->getContainer(), [ 'protected' => ['/^\/admin\//'], //This is a regex for the protected URIs 'authentication_server' => getenv('USER_INFO_ENDPOINT') //This is where the middleware //should try to fetch the user info from ] ));
然后,从任何protected
路由中,您可以从DIC中简单获取user
对象
<?php #routes.php $app->get('/admin', function ($request, $response, $args) { $user = $this->get('user'); var_dump($user); });
与Laravel一起使用
安装后,将服务提供者在您的Laravel应用程序的config/app.php
中注册
Sympla\Auth\Laravel\ServiceProvider::class
然后,发布配置
$ php artisan vendor:publish --provider="Sympla\Auth\Laravel\ServiceProvider"
一旦您的应用程序配置完成,请转到config/auth.php
并更改guard
部分
'guards' => [
'api' => [
'driver' => 'token',
'provider' => 'oauth',
],
],
然后更改providers
部分
'providers' => [
'oauth' => [
'driver' => 'oauth'
'model' => App\User::class,
],
],
然后,将auth:api
激活为您的api的中间件。
与Lumen一起使用
安装后,将服务提供者、路由中间件、Hash外观和启用eloquent注册到您的Lumen应用程序的bootstrap/app.php
//Service provider
$app->register(Sympla\Auth\Lumen\ServiceProvider::class);
// Route middleware
$app->routeMiddleware([
'auth' => App\Http\Middleware\Authenticate::class,
]);
//Hash facade
$app->withFacades(true, ['Illuminate\Support\Facades\Hash' => 'Hash']);
//Enable eloquent
$app->withEloquent();
注册服务提供者后,在Lumen应用程序中安装包以发布
$ composer require laravelista/lumen-vendor-publish
然后,发布配置
$ php artisan vendor:publish --provider="Sympla\Auth\Lumen\ServiceProvider"
一旦您的应用程序配置完成,请转到config/auth.php
,如果该文件不存在,则创建它,并更改/创建guard
部分
'guards' => [
'api' => [
'driver' => 'token',
'provider' => 'oauth',
],
],
然后更改providers
部分
'providers' => [
'oauth' => [
'driver' => 'oauth'
'model' => App\User::class,
],
],
联系方式
Pedro Igor pedro.igor@sympla.com.br
许可证
该项目采用MIT许可证分发。有关更多信息,请参阅[LICENSE][LICENSE.md]。