나는 OpenID 프로토콜을 가지고 놀고 있습니다. Discovery 요청을 보내고 Google에서 XRDS 문서를 검색하려고합니다. 나는 컬을 사용하여 터미널에서 작업을 수행 할 때, 나는 다음과 같은 출력Ruby를 사용하여 OpenID에서 XRDS 문서 검색
curl --url "https://www.google.com/accounts/o8/id"
<?xml version="1.0" encoding="UTF-8"?>
<xrds:XRDS xmlns:xrds="xri://$xrds" xmlns="xri://$xrd*($v*2.0)">
<XRD>
<Service priority="0">
<Type>http://specs.openid.net/auth/2.0/server</Type>
<Type>http://openid.net/srv/ax/1.0</Type>
<Type>http://specs.openid.net/extensions/ui/1.0/mode/popup</Type>
<Type>http://specs.openid.net/extensions/ui/1.0/icon</Type>
<Type>http://specs.openid.net/extensions/pape/1.0</Type>
<URI>https://www.google.com/accounts/o8/ud</URI>
</Service>
</XRD>
</xrds:XRDS>
내가 루비 코드에서 동일한 작업을 수행하려고 얻고, 그것은 나에게 302 오류 및 URL을 제공하는 그것을 동일한 요청 URL로 포인트를 이동했습니다.
<HTML>
<HEAD>
<TITLE>Moved Temporarily</TITLE>
</HEAD>
<BODY BGCOLOR="#FFFFFF" TEXT="#000000">
<H1>Moved Temporarily</H1>
The document has moved <A HREF="https://www.google.com/accounts/o8/id">here</A>.
</BODY>
</HTML>
코드
require 'net/http'
require 'net/https'
require 'uri'
http = Net::HTTP.new(uri.host, uri.port)
response = Net::HTTP.get_response(URI.parse("http://www.google.com/accounts/o8/id"))
puts "#{response.read_body}"
코드를 통해 XRDS를 얻는 이유는 서로 다른 출력을 보여주는 방법. 누군가가 그것을 설명 할 수 있습니까? 감사합니다
답변 해 주셔서 감사합니다 :) – felix