[英]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.