簡體   English   中英

AuthenticationClass需要與UrlVersioning復制-Luracast Restler

[英]AuthenticationClass needs duplicating with UrlVersioning - Luracast Restler

我想擁有一個身份驗證類,並且還可以對APIS進行版本控制,而不必重復我的安全代碼。

我已經安裝了restler並將以下內容添加到index.php;

Defaults::setProperty('useUrlBasedVersioning', true);
$r->addAuthenticationClass('MyOrg\\Security\\APIAuth');

然后,我在公用文件夾之外的另一個文件夾中設置了我的身份驗證類。 它不能單獨工作,但是我發現由於使用了UrlBased版本控制,我不得不在不同的命名空間中重復該類。

例如

MyOrd --->安全---> v1 ---> APIAuth.php

MyOrd --->安全---> v2 ---> APIAuth.php

我不想做以上但更簡單的只是

MyOrd --->安全性---> APIAuth.php

我正在使用Restler RC5,任何指導將不勝感激,或者這是Restler的錯誤。

Restler項目還記錄為問題https://github.com/Luracast/Restler/issues/433

只需實現iProvideMultiVersionApi並返回auth類支持的最大版本(在您的情況下為2)。請參見以下示例

namespace MyOrg\Security;

use Luracast\Restler\iAuthenticate;
use Luracast\Restler\iProvideMultiVersionApi;

class Auth implements iAuthenticate, iProvideMultiVersionApi{

    public function __isAllowed(){
        return isset($_GET['api_key']) && $_GET['api_key'] =='allow';
    }

    public function __getWWWAuthenticateString(){
        return 'Query';
    }

    /**
     * Maximum api version supported by the api class
     * @return int
     */
    public static function __getMaximumSupportedVersion()
    {
        return 2;
    }
}

暫無
暫無

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

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