2017-05-09 2 views
2

は、APIとして認証し、ルーメンのためLaravelのパスポートを使用してどのようにAPIを開発するために研究してい

  • 認証を次のように私は3つのドメインを持っているlaravel、laravelパスポート、ルーメンとAngularJS

    を使用してアプリケーションを消費しました(APIのシーバーなど)ルーメン

  • - .dev - (認証サーバなど)Laravel 5.4 +パスポートのOAuthサーバ
  • api.dev app.dev - php + angularjs(シングルページアプリ)

これらの3つを正しく設定することはできません。私はセットアップauth.devを持っており、それは正常にトークンを生成し、app.devからそれらを使用することができます。

しかし、私の要件は、APIのための3つの別々のインスタンスを使用され、認証およびAPP

私はルーメン(auth.devとアクセストークンを検証する)を介してそれを設定しようとしたが、それは動作しません。

これは可能ですか、これを達成するための提案はありますか?

+0

"動作していない"ものについての情報が必要です。どのようなエラーや問題がありますか、それを複製するためにどのような手順を取っていますか? – samiles

+0

正しい認証情報と構造でAPI(Lumen)にあるauth:api protectedルートを呼び出すと、権限のないエラーが返されます。私は認証サーバーからそれらのルート(APIに位置しています)を検証したいと思います。 – Umanda

答えて

1

私は最近、これと同じ実装を取り組んでいます。効率的に動作させるには少し努力が必要でしたが、機能しています!

受け取っているトークンの検証が必要な場合は、ルーメンがクライアントアプリケーションから受け取ったトークンをOAuthサービスに転送し、その認証の詳細を返す必要があります。あなたのルーメンアプリ。

Lumen APIサービスが常に同じマシン上で動作することが分かっているなら、何らかのRPCを使用してHTTP経由で不要に節約することができます.OAuthでカスタムArtisanコマンドを使用してコマンドラインインターフェイスを使用しましたサービスと私がRemoteArtisanと呼ぶルーメン側から実行するためのカスタムスクリプトが含まれています。

もう1つの方法はHTTP経由で、基本的にOAuthサービスに独自の非常に基本的なAPIエンドポイントを提供させることです。 routes/api.phpでこのような何かを行う必要があります。

Route::middleware('client')->get('user', function (Request $request) { 
    $helper = new App\FirstPartyClientHelper; 

    return response()->json($helper->getTokenOwnerDetails($request->bearerToken())); 

}); 

マイFirstPartyClientHelperはそれからIDを取得し、私は戻って送信したいのOAuth DBからリソースを取得するためにそれを使用するためにトークンを解析する単純なクラスですルーメン。たくさんの質問をする必要はなく、ここで多くのデータを送信する必要はないかもしれません。単純な合否に過ぎません。あなたの必要に応じて。

トークンにスコープが割り当てられていても、私はあなたのルーメンアプリを見つけ出して返信することをお勧めします。おそらくこれらを、Passportで利用可能なさまざまなスコープミドルウェアとともに使用したいと考えています。

ここで唯一のオプションは、ミドルウェアクラス(CheckScopesCheckForAnyScope)をLumenアプリケーションに複製し、手動でロードすることです。しかし、これは基本的なので簡単です。

Authenticatableクラス(通常はUserモデル)を通じてOAuthエンドポイントから戻ってくるスコープを確認できるように、それらを変更する必要があります。

いずれの解決策も各リクエストにオーバーヘッドを追加することになるので、この結果をLumenの最後にキャッシュすることを検討する価値があります。

ただし、有効期限が切れているトークンが有効とみなされる可能性があるため、キャッシュされていないことを確認してください。

また、トークンの有効期限をキャッシュのどこかに保存し、トークンが期限切れになっていないことを確認するために要求の時間に対して検証します。

これが役に立ちます。

関連する問題