簡體   English   中英

Joomla身份驗證返回URL

[英]Joomla authentication Return URL

我正在嘗試修改一個已經大量修改的joomla環境。 我不是Joomla開發人員,所以可以說在荒野中有些迷茫。

基本上,該站點的99%包含訪問級別=已注冊的文章。 當您點擊其中一篇文章的URL時,Joomla會重定向到身份驗證頁面。 這是有道理的,除了原始文章的URL丟失了,因此登錄后,您將被重定向回首頁,而不是最初打算的文章。

現在,我可以看到error.php頁面已用代碼修改,以攔截403錯誤,這看起來應該可以工作。 但是,以某種方式/某處Joomla正在以其他方式重定向到身份驗證頁面,並且不會拋出403。

所以我的問題是,Joomla如何執行重定向到身份驗證頁面(自定義插件btw)的操作,並且Joomla有什么方法可以代替拋出403錯誤,以便我可以使用在error.php中已經編碼的邏輯。

提前致謝

ps是Joomla 1.5.23和PHP 5.2.17

Joomla! 1.5使用了一個相當全面的.htaccess文件,正如Joel所說的,這發生在Joomla之前! 看看。

一個標准的Joomla! 如果相關組件的編寫正確(例如文章的標准com_content ),則在用戶登錄后1.5安裝將重定向到正確的內容。 我將首先查看為什么該方法不起作用,例如,由於某種原因修改了auth檢查。

Joomla! 1.5通常通過在用於調用com_user的URL上附加一個return參數(base64編碼)來實現此com_user ,您可以在大多數組件代碼中找到類似的代碼來檢查用戶是否有權訪問,以及是否無法重定向用戶。

if (($contact->access > $user->get('aid', 0)) || ($contact->category_access > $user->get('aid', 0))) {
    $uri        = JFactory::getURI();
    $return     = $uri->toString();

    $url  = 'index.php?option=com_user&view=login';
    $url .= '&return='.base64_encode($return);

    $mainframe->redirect($url, JText::_('You must login first') );
}

HTTP級別出現403錯誤 當用戶嘗試訪問他無權訪問的服務器的一部分時,將引發該錯誤。 這些權限與Joomla權限完全不同。 在大多數情況下,403錯誤僅來自.htaccess文件中的限制,或者是腳本告訴服務器拋出403錯誤(請參見下面的代碼)。

我不是Joomla專家,但是當用戶轉到身份驗證頁面時,您應該能夠引發403錯誤。 這個PHP代碼應該可以解決問題:

header("HTTP/1.0 403 Forbidden");

希望這對您有所幫助。

暫無
暫無

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

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