質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Laravel 5

Laravel 5は、PHPフレームワークLaravelの最新バージョンで、2014年11月に発表予定です。ディレクトリ構造がが現行版より大幅に変更されるほか、メソッドインジェクションやFormRequestの利用が可能になります。

Q&A

解決済

1回答

1157閲覧

Laravel5.5のPassportでAccessTokenをControllerで個別認証したい

yamayamak

総合スコア131

Laravel 5

Laravel 5は、PHPフレームワークLaravelの最新バージョンで、2014年11月に発表予定です。ディレクトリ構造がが現行版より大幅に変更されるほか、メソッドインジェクションやFormRequestの利用が可能になります。

0グッド

0クリップ

投稿2018/12/13 07:00

編集2018/12/13 07:24

Laravel5.5のPassportを利用しています。
通常はRouteで以下のように記載しAccessTokenを認証すると思います。

php

1Route::get('/user', function () { 2 // 3})->middleware('auth:api');

AccessTokenをHeaderの「Authorization: Bearer」ではなくデータ内(JSON形式)で
個別にAccessTokenを取得した場合に、routeでmiddleware('auth:api')で認証が
できないと思いますので、Controllerで認証したいと考えていますが良い方法があれば
ご教授をお願いします。

例えばスコープは以下のように記載できると思いますが、Requestで渡されたAccessToken
を用いて認証する良い方法を教えてください。

php

1// スコープを調べる場合 2function checkScope(Request $request) { 3 if ($request->user()->tokenCan('place-orders')) { 4 // 5 } 6}

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2018/12/13 07:09

middlewareを使わないということでしょうか。
yamayamak

2018/12/13 07:11

はい、HTTPヘッダではなくJSONデータ内で渡されるのでデータからAccessTokenを取得して認証をかけたいのです。 AccessTokenの払い出し自体は問題ないので。。。
m.ts10806

2018/12/13 07:17 編集

なるほどそういうことですね。ざっと読んだ感じ新規でミドルウェア作って提示されたメソッド通せばいけるんじゃないかと思ってたのですが違いそうですね。失礼しました
guest

回答1

0

自己解決

https://github.com/ipunkt/laravel-oauth-introspection/blob/master/src/Http/Controllers/IntrospectionController.php

のverifyToken内容をContorollerに記載して動作しました。
上記パッケージのインストールはしなくても良いですが、use宣言や__constructでParserなども
必要なところは同じように宣言して同様にすれば認証できます。

投稿2018/12/13 10:13

yamayamak

総合スコア131

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問