我正在尝试使用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
。
答案 0 :(得分:0)
正如我在another question中提到的那样,有几种方法可以使使用https协议的laravel起作用:
配置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;
}
使用https:
设置环境变量APP_URL
APP_URL=https://example.com
使用助手secure_url()(Laravel5.6)
将以下字符串添加到AppServiceProvider :: boot()方法(对于5.4+版本):
\Illuminate\Support\Facades\URL::forceScheme('https');
路由组的简单设置方案(Laravel5.6):
Route::group(['scheme' => 'https'], function () {
// Route::get(...)->name(...);
});