搜尋

首頁  >  問答  >  主體

vue.js - laravel axios跨域請求的cookie問題

在Laravel下建立了子網域路由api.service.dev,認證我是用的passport#,啟用了CreateFreshApiToken

service.dev這個網域下可以正常取得laravel_token,並請求但是請求https://api.service.dev/user 時提示401 Unauthenticated。

查看請求頭中沒有攜帶CreateFreshApiToken創建的laravel_token 這個cookie

請問大神怎麼解決?

仅有的幸福仅有的幸福2800 天前2720

全部回覆(2)我來回復

  • 世界只因有你

    世界只因有你2017-05-16 16:49:15

    1、安裝barryvdh/laravel-cors

    安裝方式請移步https://github.com/barryvdh/l...

    2、配置cors.php

    return [
        /*
         |--------------------------------------------------------------------------
         | Laravel CORS
         |--------------------------------------------------------------------------
         |
         | allowedOrigins, allowedHeaders and allowedMethods can be set to array('*')
         | to accept any value.
         |
         */
        'supportsCredentials' => true,
        'allowedOrigins' => ['*'],
        'allowedHeaders' => ['*'],
        'allowedMethods' => ['*'],
        'exposedHeaders' => [],
        'maxAge' => 0,
    ];

    3、配置session的domain

    在.env檔中加入SESSION_DOMAIN=.xxx.com,我這裡是service.dev,所以應該填入.service.dev,這樣所有service.dev的子網域可以共用Cookie

    4、最後配置前端的請求

    bootstrap.js中加入以下程式碼

    window.axios.defaults.withCredentials = true;

    這樣就能正常訪問跨域api了! ! !

    回覆
    0
  • 过去多啦不再A梦

    过去多啦不再A梦2017-05-16 16:49:15

    axios配置了withCredentials = true後在chrome下沒問題。
    但IE下還需要伺服器端設定P3P的回應頭。 。 。 IE就是這麼有個性

    回覆
    0
  • 取消回覆