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

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

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

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

Q&A

解決済

1回答

2176閲覧

laravel passport

退会済みユーザー

退会済みユーザー

総合スコア0

Laravel 5

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

0グッド

0クリップ

投稿2019/04/13 11:24

エラー内容

AccessTokenController::__construct(), 0 passed in /var/www/html/app/Http/Controllers/DataController.php on line 85 and exactly 3 expected"

該当のソースコード

DataController $a = new AccessTokenController(); $d = $a->issueToken($request);

該当のソースコード

AccessTokenController class AccessTokenController public function __construct(AuthorizationServer $server, TokenRepository $tokens, JwtParser $jwt) { $this->jwt = $jwt; $this->server = $server; $this->tokens = $tokens; }
<?php namespace Laravel\Passport\Http\Controllers; use Laravel\Passport\TokenRepository; use Lcobucci\JWT\Parser as JwtParser; use Psr\Http\Message\ServerRequestInterface; use Zend\Diactoros\Response as Psr7Response; use League\OAuth2\Server\AuthorizationServer; class AccessTokenController { use HandlesOAuthErrors; /** * The authorization server. * * @var \League\OAuth2\Server\AuthorizationServer */ protected $server; /** * The token repository instance. * * @var \Laravel\Passport\TokenRepository */ protected $tokens; /** * The JWT parser instance. * * @var \Lcobucci\JWT\Parser */ protected $jwt; /** * Create a new controller instance. * * @param \League\OAuth2\Server\AuthorizationServer $server * @param \Laravel\Passport\TokenRepository $tokens * @param \Lcobucci\JWT\Parser $jwt * @return void */ public function __construct(AuthorizationServer $server, TokenRepository $tokens, JwtParser $jwt) { $this->jwt = $jwt; $this->server = $server; $this->tokens = $tokens; } /** * Authorize a client to access the user's account. * * @param \Psr\Http\Message\ServerRequestInterface $request * @return \Illuminate\Http\Response */ public function issueToken(ServerRequestInterface $request) { return $this->withErrorHandling(function () use ($request) { return $this->convertResponse( $this->server->respondToAccessTokenRequest($request, new Psr7Response) ); }); } }

#外部から呼び出す時にエラーが出ます。
Userを作成した時にissueTokenを呼び題してpassportのoauth_access_tokensにもユーザー情報を登録する方法。

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

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

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

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

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

guest

回答1

0

ベストアンサー

Laravel Passport の使い方は知りませんがコードが合っているという前提で。

php

1$a = resolve(AccessTokenController::class); 2// または 3$a = \App::make(AccessTokenController::class);

AccessTokenController の作成時にコンストラクタに引数が3つ必要です。
コンテナに登録されて入れば resolve() で取得したときに注入されます。

投稿2019/04/13 17:14

kodai

総合スコア759

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

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

退会済みユーザー

退会済みユーザー

2019/04/13 23:38 編集

ご回答ありがとうございました。 __constructの部分でエラーは解決いたしました。 ありがとうございます。 しかし問題がまた出てきております。 issueToken(ServerRequestInterface $request) の箇所で下記のエラーが出てきてしまっております。 引数に$requestを入れているためあっているかと思っております。 ご教授お願いいたします。 "Argument 1 passed to Laravel\Passport\Http\Controllers\AccessTokenController::issueToken() must be an instance of Psr\Http\Message\ServerRequestInterface 該当ソース箇所 $a = resolve(AccessTokenController::class); $d = $a->issueToken($request);
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問