# File lib/ramaze/helper/identity.rb, line 39
      def openid_begin
        # The OpenID URL pointing to a user's OpenID page,
        # for example: http://username.myopenid.com)
        url = request['url']
        redirect_referrer if url.to_s.empty?
        session[:openid] ||= {}
        session[:openid][:entry] = request.referrer

        openid_request = openid_consumer.begin(url)

        # We want these communications to be a secure as the server can
        # support!
        papereq = OpenID::PAPE::Request.new
        papereq.add_policy_uri(OpenID::PAPE::AUTH_PHISHING_RESISTANT)
        papereq.max_auth_age = 2*60*60
        openid_request.add_extension(papereq)

        # Request information about the person
        sregreq = OpenID::SReg::Request.new
        sregreq.request_fields(['fullname', 'nickname', 'dob', 'email',
                               'gender', 'postcode', 'country', 'language',
                               'timezone'])
        openid_request.add_extension(sregreq)
        openid_request.return_to_args['did_pape'] = 'y'

        root      = "http://#{request.http_host}/"
        return_to = request.domain(rs(:openid_complete)).to_s
        immediate = false

        if openid_request.send_redirect?(root, return_to, immediate)
          redirect_url =
            openid_request.redirect_url(root, return_to, immediate)
          raw_redirect redirect_url
        else
          # what the hell is @form_text ?
        end

      rescue OpenID::OpenIDError => ex
        flash[:error] = "Discovery failed for #{url}: #{ex}"
        raw_redirect rs(:/)
      end