私はLaravel5.4 APIにパスポート認証を使用しています。ここに会社の詳細のAPIがあり、それは非認証APIです。このURLで認証を使用してこの会社が好きなログインユーザーを確認する必要があります...これを行う方法。
これが私のルートです
Route::get('/company/{company}','Api\V1\CompanyController@show');
Route::group(['middleware' => 'auth:api','prefix'=>'v1'], function(){
//auth urls
}
これが私のコントローラーです
class CompanyController extends Controller
{
public function show(Company $company,Request $request)
{
$data = array();
$flag = 0;
$data['status'] = 1;
$data['message'] = 'success';
$data['baseUrl'] = url('/');
$data['is_login'] = Auth::check();
ここで、apiのヘッダーに認証トークンを追加した場合、is_loginは常にfalseを返します。
デフォルトのガードセットは何ですか?
Auth::check()
あるAuth::guard(null)->check()
現在のデフォルトのガードを使用します。
APIをチェックしたい場合はapi
、auth
ミドルウェアが使用するときに使用してauth:api
いるのと同じようにガードを使用することをお勧めします。
Auth::guard('api')->check()
api
デフォルトが何であるかではなく、ガードを明示的に使用するように指示します。これは、何を設定したかわからないため、何でもかまいません。
auth
ミドルウェアが実行されると、実際には、ミドルウェアに渡されるガードと、ユーザーを解決できるガードに応じて、デフォルトのガードが設定されます。Auth::user()
ミドルウェアは現在をユーザーを解決したものに設定するため、正しいガードから正しいユーザーを呼び出して取得できるのはそのためです。(このミドルウェアを持つルートを呼び出す場合)
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加