Laravel на домене https отвечает от http - PullRequest
0 голосов
/ 07 сентября 2018

Я пытаюсь реализовать авторизацию на Facebook с использованием SPA - Angular 6 и API бэкэнда - Laravel с Dingo / API.

Когда я пытаюсь перенаправить и вернуться в SPA страницу

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

По какой-то причине ответ приходит от http вместо https в соответствии с ошибкой.

[заблокирован] На странице https://www.domain/ не разрешено отображать небезопасный контент с http://api.domain/auth/facebook.

Хотя я настроил свои домены на https и перенаправил все http запросы на https. Более того, я звоню https://api.domain/auth/facebook методом GET.

1 Ответ

0 голосов
/ 07 сентября 2018

Как я уже упоминал в другом вопросе , существует несколько способов заставить работу laravel с использованием протокола https:

  1. Настройте свой веб-сервер для перенаправления всех незащищенных запросов на 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. Установите переменную среды APP_URL, используя https:

    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(...);
    });
    
...