0

Web サービスのいくつかのメソッドの認証システムを作成しようとすると問題が発生します。私は uu​​id (セッション トークン) を作成し、このような xml に入れたいと思っています。他の関数を使用しているときは、このトークンを認証に再利用します。

次のような関数を作成します。

<cffunction name="myfunction" access="remote" returntype="xml">
<cfargument name="user" type="string" required="true">
<cfargument name="pwdtype="string" required="true">

    //LOGIN HERE and test if myuser is ok
    <cfif local.myuser.recordcount is 1> 
       <cfxml variable="local.myresult"><cfoutput>
     <myxml>
        <response type="myresponse">
            <message>Autenticazione effettuata correttamente</message>
                    <dati>  
                       <idtoken>#session.urltoken#</idtoken>
               <iduser>#local.myuser.iduser# </iduser>
        </dati> 
        </response>
     </myxml>               
       </cfoutput></cfxml>
    </cfif>
</cffunction>

私の質問は次のとおりです。次の行のように、再テスト認証のためにセッションを取得するにはどうすればよいですか?

if session.mytoken is session.realtoken
4

1 に答える 1

0

はい、あなたが求めていることを行うことは可能ですが、それは本当に必要ですか? トークンベースの認証スキームを構築する場合、そのトークンの側面を維持するのはあなた (あなたのコード) 次第です。トークンの作成。トークンを渡します。トークンを確認しています。トークンは有効ですか? トークンの有効期限はありますか? など。私の意見では、トークンは必要ありません。

代わりに、Web サービスを他の保護された ColdFusion アプリケーションと同じように扱うことをお勧めします。ユーザーがアクセスしたとき (Web サービスを要求したとき) に、有効なセッションをチェックします。ColdFusion の Application.cfc ファイルのメソッドを簡単に利用onCFCRequestして、Web サービスに対して行われるすべてのリクエストをチェックできます。セッションが存在しない場合は、401 応答を返して認証を求めます。これにより、Java EE セッションの組み込み機能を活用することもできます。

インターネット上には、このセットアップの例がいくつかあります。

もちろん、これらの方法を使用してサービスを保護し、必要に応じてやり取りするトークンを作成することもできます。そのユーザーのセッションにトークンを保存し、リクエストごとにそれをチェックするだけです。

于 2013-06-14T12:23:43.710 に答える