浏览代码

Update oauth flow

Daniel Supernault 3 年之前
父节点
当前提交
1c02afb1a1
共有 5 个文件被更改,包括 250 次插入202 次删除
  1. 25 0
      app/Auth/BearerTokenResponse.php
  2. 27 0
      app/Providers/PassportServiceProvider.php
  3. 1 0
      composer.json
  4. 196 202
      composer.lock
  5. 1 0
      config/app.php

+ 25 - 0
app/Auth/BearerTokenResponse.php

@@ -0,0 +1,25 @@
+<?php
+
+namespace App\Auth;
+
+use League\OAuth2\Server\Entities\AccessTokenEntityInterface;
+
+class BearerTokenResponse extends \League\OAuth2\Server\ResponseTypes\BearerTokenResponse
+{
+    /**
+     * Add custom fields to your Bearer Token response here, then override
+     * AuthorizationServer::getResponseType() to pull in your version of
+     * this class rather than the default.
+     *
+     * @param AccessTokenEntityInterface $accessToken
+     *
+     * @return array
+     */
+    protected function getExtraParams(AccessTokenEntityInterface $accessToken)
+    {
+        return [
+        	'created_at' => time(),
+        	'scope' => 'read write follow push'
+        ];
+    }
+}

+ 27 - 0
app/Providers/PassportServiceProvider.php

@@ -0,0 +1,27 @@
+<?php
+
+namespace App\Providers;
+
+use App\Auth\BearerTokenResponse;
+use Laravel\Passport\Bridge;
+use League\OAuth2\Server\AuthorizationServer;
+
+class PassportServiceProvider extends \Laravel\Passport\PassportServiceProvider
+{
+    /**
+     * Make the authorization service instance.
+     *
+     * @return \League\OAuth2\Server\AuthorizationServer
+     */
+    public function makeAuthorizationServer()
+    {
+        return new AuthorizationServer(
+            $this->app->make(Bridge\ClientRepository::class),
+            $this->app->make(Bridge\AccessTokenRepository::class),
+            $this->app->make(Bridge\ScopeRepository::class),
+            $this->makeCryptKey('private'),
+            app('encrypter')->getKey(),
+            new BearerTokenResponse()
+        );
+    }
+}

+ 1 - 0
composer.json

@@ -73,6 +73,7 @@
 	"extra": {
 		"laravel": {
 			"dont-discover": [
+				"laravel/passport"
 			]
 		}
 	},

文件差异内容过多而无法显示
+ 196 - 202
composer.lock


+ 1 - 0
config/app.php

@@ -165,6 +165,7 @@ return [
         App\Providers\HorizonServiceProvider::class,
         App\Providers\EventServiceProvider::class,
         App\Providers\RouteServiceProvider::class,
+        App\Providers\PassportServiceProvider::class,
 
     ],
 

部分文件因为文件数量过多而无法显示