簡體   English   中英

Canvas LTI 適用於 AWS 開發,但在生產中返回無效的消費者密鑰(負載均衡器)

[英]Canvas LTI works on AWS dev but returns Invalid consumer key on production (Load balancer)

我正在從客戶端到我們的 AWS EC2 實施基本的畫布 LTI。 當端點是我們的開發 EC2 時,它工作正常。 但是,當端點是我們的實時站點時,其中 EC2 位於負載均衡器之后,它會失敗並顯示“消費者密鑰無效”

基本代碼完全相同,EC2 都來自同一個 AMI。

任何想法表示贊賞!

問題是 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, $http_url=NULL, $parameters=NULL) {        
        $scheme = 'https';
        $http_url = ($http_url) ? $http_url : $scheme .
            '://' . $_SERVER['SERVER_NAME'] .
            ':' .
            443 .
            $_SERVER['REQUEST_URI'];

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM