def check_auth(nonce, query, server_url)
check_args = OpenID::Util.get_openid_params(query)
check_args["openid.mode"] = "check_authentication"
post_data = OpenID::Util.urlencode(check_args)
ret = @fetcher.post(server_url, post_data)
if ret.nil?
return FAILURE
else
url, body = ret
end
results = OpenID::Util.parsekv(body)
is_valid = results.fetch("is_valid", "false")
if is_valid == "true"
invalidate_handle = results["invalidate_handle"]
unless invalidate_handle.nil?
@store.remove_association(server_url, invalidate_handle)
end
unless @store.use_nonce(nonce)
return FAILURE
end
return SUCCESS
end
error = results["error"]
return FAILURE unless error.nil?
return FAILURE
end