2

ユーザーが正しいキーを持っているかどうか、アプリケーションはどのように確認できますか? 証明書を作成し、これらの要件を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;
}

使用中のスクリプトはオープンソースで、こちらの github で入手できます。ここでスクリプトの実装例も読みました。しかし、迅速な認証のためのものは実際には見つかりませんでした。

私がこれを尋ねている理由..ユーザーのキーと証明書を数分ではなく数秒で認証してもらいたいからです(受信する必要がある請求書または連絡先情報の数を与えて取ります)。この問題に関するヘルプをいただければ幸いです。:)

4

1 に答える 1

2

あなたの質問に対する簡単な答えは、GET Organization 呼び出しを行うことです。それが 401 で失敗した場合は、何か間違ったことをしたことがわかります。

長い答えは次のとおりです。ユーザーに認証を求める場合、プライベート API アプリケーションを使用する必要がありますか? このシナリオにより適したアプリケーション タイプは他にもあります (いくつかの仮定を行ったので、間違っている可能性があります)。これが役立つかもしれません: API アプリケーション タイプ ガイド

于 2012-08-16T02:51:59.530 に答える