在我的新应用程序API中,我必须检查来自第三方URL的请求是否应该使用https。如果不是https,我必须返回消息“连接不安全”。有人能帮助我吗?
w8f9ii691#
给你:
Determining If The Request Is Over HTTPS Using Request::secure() if (request()->secure()) { // }
如果您的主机位于负载平衡器之后,请改用RequestgetScheme
xienkqul2#
丹尼尔Tran的答案是正确的,仅供参考HTTPS类型的请求在请求上有一个额外的字段HTTPS。有时这个字段也可以等于 off,但没有别的。所以你可以写一段代码
if (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off') { doSomething(); }
Laravel请求类也从symphony继承了一些完全类似的东西。vendor/symfony/http-foundatiton/Request.php
public function isSecure() { if ($this->isFromTrustedProxy() && self::$trustedHeaders[self::HEADER_CLIENT_PROTO] && $proto = $this->headers->get(self::$trustedHeaders[self::HEADER_CLIENT_PROTO])) { return in_array(strtolower(current(explode(',', $proto))), array('https', 'on', 'ssl', '1')); } $https = $this->server->get('HTTPS'); return !empty($https) && 'off' !== strtolower($https); }
piok6c0g3#
从Laravel请求类使用getSchemeAndHttpHost()方法
getSchemeAndHttpHost()
{{ Request::getSchemeAndHttpHost() }}
返回例如:
http://example.com
http://192.0.0.1
https://example.com
返回protocol/domain名称
protocol/domain
3条答案
按热度按时间w8f9ii691#
给你:
如果您的主机位于负载平衡器之后,请改用RequestgetScheme
xienkqul2#
丹尼尔Tran的答案是正确的,仅供参考HTTPS类型的请求在请求上有一个额外的字段HTTPS。有时这个字段也可以等于 off,但没有别的。
所以你可以写一段代码
Laravel请求类也从symphony继承了一些完全类似的东西。
vendor/symfony/http-foundatiton/Request.php
piok6c0g3#
从Laravel请求类使用
getSchemeAndHttpHost()
方法返回例如:
http://example.com
或http://192.0.0.1
或https://example.com
返回
protocol/domain
名称