https域上的Laravel来自http

时间:2018-09-07 09:22:43

标签: angular laravel laravel-socialite dingo-api

我正在尝试使用SPA-Angular 6和后端API-具有Dingo / API的Laravel来实现Facebook身份验证。

当我尝试重定向并返回SPA页面时

public function redirectToProvider()
    {
        return Socialite::driver('facebook')->stateless()->redirect()->getTargetUrl();
    }

由于某种原因,根据错误,响应来自http而不是https

  

[已屏蔽]不允许https://www.domain/上的页面显示来自http://api.domain/auth/facebook的不安全内容。

尽管如此,我已经将我的域都设置为https,并将所有http请求重定向到https。而且,我正在使用GET方法调用https://api.domain/auth/facebook

1 个答案:

答案 0 :(得分:0)

正如我在another question中提到的那样,有几种方法可以使使用https协议的laravel起作用:

  1. 配置Web服务器以将所有非安全请求重定向到https。 Nginx配置示例:

    server {
        listen 80 default_server;
        listen [::]:80 default_server;
        server_name example.com www.example.com;
        return 301 https://example.com$request_uri;
    }
    
  2. 使用https:

    设置环境变量APP_URL
    APP_URL=https://example.com
    
  3. 使用助手secure_url()(Laravel5.6)

  4. 将以下字符串添加到AppServiceProvider :: boot()方法(对于5.4+版本):

    \Illuminate\Support\Facades\URL::forceScheme('https');
    
  5. 路由组的简单设置方案(Laravel5.6):

    Route::group(['scheme' => 'https'], function () {
        // Route::get(...)->name(...);
    });