鍍金池/ 問答/PHP/ laravel passport JavaScript api如何使用呢?

laravel passport JavaScript api如何使用呢?

  1. 有清楚這個api怎么使用么?

clipboard.png

回答
編輯回答
抱緊我

墻內(nèi)找了很長時間都沒找到,最終還是在google里找到了答案。
文檔的描述不是很清楚,其實問題在于使用javascript 接入api 認(rèn)證方式應(yīng)該使用默認(rèn)的用戶認(rèn)證 和 web中間件,而不是用passport提供的登錄方式以及 auth:api中間件

  1. 使用laravel默認(rèn)的用戶認(rèn)證,

    php artisan make:auth
  2. 配置文件 config/auth.php 中授權(quán)看守器 guards 的 api 的 driver 選項改為 passport(估計不改也行,沒有試過,使用javascript接入api的目的是多套應(yīng)用程序公用一套api,所以還是改了)

    'guards' => [
        'web' => [
            'driver' => 'session',
            'provider' => 'users',
        ],
    
        'api' => [
            'driver' => 'passport',
            'provider' => 'users',
        ],
    ],
  3. 將 CreateFreshApiToken 中間件添加到 web 中間件組

        protected $middlewareGroups = [
            'web' => [
                ...
                \Laravel\Passport\Http\Middleware\CreateFreshApiToken::class,
            ],
    
            'api' => [
                'throttle:60,1',
                'bindings',
            ],
        ];
  4. 訪問 域名/login 登錄
    圖片描述
  5. 登錄成功之后打開控制臺發(fā)現(xiàn)cookie中會有l(wèi)aravel_token
    圖片描述
  6. 請求其他接口Header中需要攜帶該cookie 與 X-CSRF-TOKEN,默認(rèn)axios幫我做了這些,下面是postman的示例
    圖片描述
2018年6月16日 08:23
編輯回答
背叛者

這兩天我也一直頭疼這個問題,但幸好現(xiàn)在剛好解決,請參閱
在laravel中配置及測試passport
及我遇到的問題
vue+laravel+passport跨域的問題

2018年1月11日 21:10