2017-07-18 20 views
2

php league oauth2サーバーのセキュリティが強化された後、Laravelパスポート認証が失敗します。 https://oauth2.thephpleague.com/v5-security-improvements/Laravel Passport認証が失敗しました

が自分のドキュメントによると、それは必見です詳細については、このページを参照してください -

例外は

あなたはこのライブラリのセキュリティ を改善するために、今後の暗号化キーを設定する必要がありますと言います暗号化キーを設定します。

// Setup the authorization server 
$server = new AuthorizationServer(
    $clientRepository, 
    $accessTokenRepository, 
    $scopeRepository, 
    $privateKeyPath, 
    $publicKeyPath 
); 
$server->setEncryptionKey('lxZFUEsBCJ2Yb14IF2ygAHI5N4+ZAUXXaSeeJm6+twsUmIen'); 

すなわちが、Laravelパスポート現在のリリースでは、この修正プログラムが含まれていません。私は

に手動setEncryptionKeyを()を添加したものを

/vendor/laravel/passport/src/PassportServiceProvider.php

public function makeAuthorizationServer() 
    { 
     $server = new AuthorizationServer(
      $this->app->make(Bridge\ClientRepository::class), 
      $this->app->make(Bridge\AccessTokenRepository::class), 
      $this->app->make(Bridge\ScopeRepository::class), 
      'file://'.Passport::keyPath('oauth-private.key'), 
      'file://'.Passport::keyPath('oauth-public.key') 
     ); 
     $server->setEncryptionKey('lxZFUEsBCJ2Yb14IF2ygAHI5N4+ZAUXXaSeeJm6+twsUmIen'); 
     return $server; 
    } 

これは私のための作品です。しかし、技術的に私はこのファイルを編集することはできません。これに適した修正はありますか?

答えて

1

sudo chown www-data:www-data storage/oauth-*.key 
sudo chmod 600 storage/oauth-*.key 

それは

+0

私の問題を解決し...これを試してみてはご回答いただきありがとうございます。これは許可を与えています。 makeAuthorizationServer()のsetEncryptionKey()メソッドが欠落しています。パスポートのメンテナーは、バージョンv1.0.18タグで修正されていると言います。まだパスポートv3では利用できません。 – Umanda

+0

あなたの情報:https://github.com/laravel/passport/issues/437 – Umanda

関連する問題