2008/08/05

[ColdFusion][OpenID]取得したXRDSについて

おととい、Yadisプロトコルを利用して、XRDSを取得できたことを書きました。

今日は、その続きから、さっそくファイルを開いてみると

<?xml version="1.0" encoding="UTF-8"?>
<xrds:XRDS
    xmlns:xrds="xri://$xrds"
    xmlns:openid="http://openid.net/xmlns/1.0"
    xmlns="xri://$xrd*($v*2.0)">
  <XRD>
    <Service priority="0">
      <Type>http://specs.openid.net/auth/2.0/server</Type>
      <URI>https://open.login.yahooapis.jp/openid/op/auth</URI>
    </Service>
  </XRD>
</xrds:XRDS>

となってました。URIタグの中にあるテキストが、OP Endpoint URLなんですけど、OP Endpoint URLとは

エンドユーザが指定した識別子(User-Supplied Identifier)に対し行った発見行為(Discovery)で得たOpenID認証プロトコルのメッセージを容認するURLを示す。
この値は必ず完全なHTTPかHTTPS URLでなくてはならない。

via:OpenID Authentication 2.0

とつまり、OpenIDを使ってエンドユーザーログインするページのことだと判断しました。

OP Endpoint URLを使って間接通信を行おうと思います。

あと、ColdFusionでXMLをパースして、タグの直下にあるテキストを取得したい場合、XRDSを例にとると、

<cfset RetXML = XmlParse(cfhttp.fileContent)>
<cfset ReqUrl = RetXML.xrds.XRD.Service.URI.XMLText>

と最後に、XMLTextを書くのがポイント。

これを忘れてしまうとタグまで取得してしまい、思わぬところで、ハマルところになります。
(というかハマリました)

なので、注意したいっすね。

0 コメント:

コメントを投稿