应用程序如何检查用户是否具有正确的密钥?证书并验证这些要求与xero api中的要求相对应?我当前的算法只检查所需内容的可访问性,以便与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;
}
正在使用的脚本是opensource,可在github here获得。我还阅读了脚本here的示例实现。但我还没有找到任何快速认证的东西。
我问这个的原因是...我宁愿让我的用户密钥和证书在几秒钟而不是几分钟内进行身份验证(提供和接收需要收到多少发票或联系信息)。对此问题的任何帮助将不胜感激! :)
答案 0 :(得分:2)
你的问题的快速回答是做一个GET组织的电话 - 如果用401失败,你知道你做错了什么。
答案很长:如果您要让用户进行身份验证,您确定应该使用私有API应用程序吗?还有其他应用程序类型可能更适合这种情况(我做了一些假设,所以我可能是错的)。这可能会有所帮助:API Application type guide。