def complete(query, token)
pieces = self.split_token(token)
if pieces
consumer_id, server_id, server_url = pieces
else
return FailureResponse.new(nil, msg='bad token')
end
nonce = query['nonce']
if nonce.nil?
return FailureResponse.new(consumer_id, 'could not extract nonce')
end
mode = query["openid.mode"]
case mode
when "cancel"
return CancelResponse.new(consumer_id)
when "error"
error = query["openid.error"]
unless error.nil?
OpenID::Util.log('Error: '+error)
end
return FailureResponse.new(nil, msg=error)
when "id_res"
return self.do_id_res(nonce, consumer_id, server_id, server_url, query)
else
return FailureResponse.new(nil, msg="unknown mode #{mode}")
end
end