2012-07-26 30 views
2

應用程序如何檢查用戶是否擁有正確的密鑰?證書並驗證這些要求與xero api中的要求相對應嗎?我目前的算法僅檢查了爲了與api進行初始連接所需的可訪問性,但未必檢查該信息是否有效。對XERO API進行快速身份驗證的技術有哪些?

//check for files/keys before running xero 
function provideXeroConnection($request = 'xml'){ 
    //validate everything is inplace 
    if(validateXeroAuth()){ 
     //if it is then bubble the object up to (XeroAc & JSONEngine or XMLEngine) 
     return new Xero(XeroAuths::getSetting('xero_consumer'), XeroAuths::getSetting('xero_secret'), XERO_PUBLIC_KEY_PATH, XERO_PRIVATE_KEY_PATH, $request); 
    } else return false; 
/* 
* @TODO validate xero authentication 
*/ 
function validateXeroAuth(){ 
    $xero_key = XeroAuths::getSetting('xero_consumer'); 
    $xero_secret = XeroAuths::getSetting('xero_secret'); 
    if(file_exists(XERO_PUBLIC_KEY_PATH) && file_exists(XERO_PRIVATE_KEY_PATH)){ 
     if(validateValue($xero_key) && validateValue($xero_secret)){ 
      return true; //feature not completely implemented @TODO 
     } else return false; 
    } else return false; 
} 
//validate the value for xero 
function validateValue($value){ 
    if(isset($value)){ 
     if(!is_null($value)){ 
      if(!empty($value)){ 
       return true; 
      } else return false; 
     } else return false; 
    } else return false; 
} 

在使用該腳本是開源和可在github上here。我還閱讀了腳本here的示例實現。但我沒有真正發現任何快速認證。

的原因,我問這個..是我寧願有我的用戶密鑰和證書在幾秒鐘而不是分鐘(給予和索取多少發票或聯繫信息,必須收到)認證。任何有關這個問題的幫助將不勝感激! :)

回答

2

您的問題的快速答案是做一個GET組織調用 - 如果失敗與401,你知道你做錯了什麼。

長的答案是:如果您要讓用戶進行身份驗證,您確定應該使用私有API應用程序嗎?還有其他的應用類型可能更適合這種情況(我做了一些假設,所以我可能是錯的)。這可能有所幫助:API Application type guide

+0

嗨羅南,只是好奇你的評論「你確定...」我們目前正在開發一個私人應用程序發貨給客戶,將查詢他們的地址詳細信息。這是否會帶來安全風險,因爲我們會在應用程序中向他們提供我們的證書?最終用戶不需要根據我們組織中的xero用戶進行身份驗證。 – rbuddicom 2013-09-08 23:25:41