2017-06-09 11 views
1

私はAPIベースのウェブアプリケーションを作っています。通常のユーザーのようなさまざまなユーザー、更新、削除、表示のためのテーブルを含むWebページの管理者が含まれます。明らかに多くのページがあり、アクセスはユーザーの範囲に依存します。FreshAPITokenまたは個人用アクセストークンを作成します。 CreateFreshAPITokenはAJAXで動作しますか?

ユーザーがログインするたびにスコープのある個人用アクセストークンを生成する必要があります。ユーザーのグループ(権限を持っているかどうかを確認するために)を使用して、Webページにアクセスしたり、アクセスしたりするために使用する必要があります。いくつかの要求をしています。

OR

は私が要求をCreateFreshApiTokenミドルウェアを使用すべき、彼にいくつかのWebページへのアクセス権を与えるにログインしながら、私は、ユーザーのグループを確認する必要があります。

私はあなたが何を言おうとしているのか理解してくれることを願っています。

また、CreateFreshApiTokenミドルウェアは、送信応答にlaravel_tokenクッキーを添付します。 AJAXを使用している場合、それは機能しますか?もしそうでなければ、私は常にリクエストでアクセストークンを渡さなければならないのでしょうか?

+0

//スコープでトークンを作成する... '' '$ token = $ user-> createToken( 'My-Token'、['place-orders'、 'create-order'、 'edit-order' ]]) - > accessToken; '' ' これを試しましたか?トークンを生成する際にすべてのスコープを追加してください。 –

+0

@PrashantBarve ok。 – NaMo

答えて

2

スコープは、アプリケーションのユーザーグループ/ユーザー権利/ユーザーロールに従属する特定の意味であるため、2番目のシナリオに進み、CreateFreshApiTokenミドルウェアを使用します。

たとえば、アプリケーションにログインしたユーザーは、注文した注文を表示および表示する権限を持つことができます。しかし、APIを使用するモバイルアプリなどのデベロッパーは、このアプリにログインするユーザーに、注文を表示する権限(例:orders.view)のみを提供することができます。これをたとえばGoogle APIと比較してください。 Gmailのユーザーは電子メールの読み取りや削除などの権利を持ちますが、Gmail APIを使用するアプリケーションを開発するときには、必要なのはそのアプリケーションのみであると判断し、必要な範囲についてユーザーに尋ねます電子メールを読む。

したがって、スコープを持つLaravelアプリケーションの認証レイヤー全体を管理することは非常に細いです。ほとんどの場合、アプリケーションの承認レイヤー(ユーザーの役割、権限など)をAPIの承認レイヤー(スコープ)で区切る方がよいでしょう。

CreateFreshApiTokenミドルウェアは、JavaScriptとAJAXを使用してAPIを使用するためのものです。 laravel_tokenは、ログイン後にウェブルートに対して行われた最初のGETリクエスト(ログイン後にLaravel Authスキャフォールディングによって/homeへのリクエストが自動的に行われる)の後、各AJAXリクエストにCookieとして添付されます。説明は、Passportドキュメントのこの部分にあります。https://laravel.com/docs/5.4/passport#consuming-your-api-with-javascript

パーソナルアクセストークンはAPIキーと見ることができます。 APIコンシューマは、このキーを使用して、OAuth2フローを経由することなく、APIを使用して認証することができます。このトークンを使用してリクエストを行うには、JavaScriptアプリケーションからAPIへのプロキシを作成する必要があります。これは非常に奇妙です。

関連する問題