簡體   English   中英

php function 驗證令牌在 localhost 中有效,但在 GoDaddy 服務器上無效

[英]php function verify token works in localhost but not on GoDaddy server

我有 php function 應該驗證是否有令牌,如果有,顯示一些信息。 當我在本地主機中使用 xampp 時,function 工作正常。 當我在服務器上的 prod 中執行此操作時,它給了我一個“令牌未定義”錯誤,即使我可以在開發工具中看到該令牌。 什么可能導致錯誤? 我的 php function

    public function viewCompanies()
    {

        if (isset($GLOBALS['headers']['Authorization'])) {
            print_r($GLOBALS['headers']['Authorization']);

            if ($id = $this->VerifyUserToken($GLOBALS['headers']['Authorization'], $_SERVER['REMOTE_ADDR'])) {

                $companies = $this->currentModel->viewCompanies();

                if ($companies) {
                    echo json_encode($companies);

                } else {
                    echo json_encode(['success' => false]);
                }

            }
            else {
                echo json_encode(['success' => false, 'error' => "invalid token"]);
            }

        } else {
            echo json_encode(['success' => false, 'error' => "token undefined"]);
        }


    }

verifyUserToken function

public function verifyUserToken($token, $ip) {
        $db = new Database();

        $db->query('SELECT * FROM auth WHERE token = :token AND expiry >now()');

        $db->bind(':token', $token);
        //check database if token exists and is not expired
        if($res = $db->single()) {
            // checks if token matches to ip address
            // returns user or contact id if verified else returns false
            if($res->token === $token && $res->ip === $ip) {
                $this->cleanTokens();
                if($res->user_id >0) {
                    return $res->user_id;
                }
//              
            } else {
                return false;
            }
        } else {
            return false;
        }

    }

我檢查了數據庫,令牌顯然在那里

我在 Postman 上測試了 function,我得到了相同的令牌未定義錯誤。 如果我應該添加任何其他信息,請告訴我。 我不知道如何調試這個。

到底。 是 goDaddy 拯救了這一天。 在我打開一張票並與他們交談后,他們向我發送了以下消息:關於您看到的問題,即自定義 HTTP 標頭被從您的站點上的請求中剝離出來,您遇到的問題實際上是由於 CGI處理程序 Apache 配置為默認在 cPanel 上使用。 出於安全原因,CGI 處理程序會刪除未在 Apache 配置中顯式注冊的自定義 header 條目。 我們可以通過將站點使用的 PHP 處理程序從 CGI 更改為 PHP-FPM 來進一步驗證這一點。 如果您...請隨時通過電話或實時聊天聯系我們的支持團隊。

真摯地,

一切都很好,結局很好。

暫無
暫無

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

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