如何解决Canvas LTI 适用于 AWS 开发,但在生产中返回无效的消费者密钥负载均衡器
我正在从客户端到我们的 AWS EC2 实施基本的画布 LTI。当端点是我们的开发 EC2 时,它工作正常。但是,当端点是我们的实时站点时,其中 EC2 位于负载均衡器之后,它会因“消费者密钥无效”而失败
任何想法都值得赞赏!
解决方法
问题是 aws 负载均衡器通过 http 端口 80 连接到 EC2 目标,这导致 oauth 失败。
我不确定将 https/443 更改/添加到目标组会如何影响我的自动缩放组和健康检查等,因此我编辑了 OAuth.php 文件,删除了 from_request 函数中检查服务器是否正常的部分https 因为我们将始终为此通过 https 进行连接。
改变了这个:
public static function from_request($http_method=NULL,$http_url=NULL,$parameters=NULL) {
$scheme = (!isset($_SERVER['HTTPS']) || $_SERVER['HTTPS'] != "on")
? 'http'
: 'https';
$http_url = ($http_url) ? $http_url : $scheme .
'://' . $_SERVER['SERVER_NAME'] .
':' .
$_SERVER['SERVER_PORT'] .
$_SERVER['REQUEST_URI'];
为此:
public static function from_request($http_method=NULL,$parameters=NULL) {
$scheme = 'https';
$http_url = ($http_url) ? $http_url : $scheme .
'://' . $_SERVER['SERVER_NAME'] .
':' .
443 .
$_SERVER['REQUEST_URI'];
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。