class OmniAuth::Strategies::Nordea

Constants

PRODUCTION_ENDPOINT
TEST_ENDPOINT

Public Instance Methods

callback_phase() click to toggle source
Calls superclass method
# File lib/omniauth/strategies/nordea.rb, line 40
def callback_phase
  if request.params["B02K_CUSTID"] && !request.params["B02K_CUSTID"].empty?
    message = OmniAuth::Strategies::Nordea::Response.new(request.params)
    message.validate!(options.mac)
    super
  else
    fail!(:invalid_credentials)
  end
rescue ValidationError => e
  fail!(:invalid_mac, e)
end
request_phase() click to toggle source
# File lib/omniauth/strategies/nordea.rb, line 52
def request_phase
  message = OmniAuth::Strategies::Nordea::Request.new(
    "A01Y_ACTION_ID" => "701",
    "A01Y_VERS"      => "0002",
    "A01Y_RCVID"     => options.rcvid,
    "A01Y_LANGCODE"  => "LV",
    "A01Y_STAMP"     => "yyyymmddhhmmssxxxxxx",
    "A01Y_IDTYPE"    => "02",
    "A01Y_RETLINK"   => callback_with_status_url("success"),
    "A01Y_CANLINK"   => callback_with_status_url("cancelled"),
    "A01Y_REJLINK"   => callback_with_status_url("rejected")
  )
  message.sign!(options.mac, options.hash_algorithm)

  # Build redirect form
  form = OmniAuth::Form.new(title: I18n.t("omniauth.nordea.please_wait"), url: options.endpoint)

  message.each_pair do |k,v|
    form.html "<input type=\"hidden\" name=\"#{k}\" value=\"#{v}\" />"
  end

  form.button I18n.t("omniauth.nordea.click_here_if_not_redirected")

  form.instance_variable_set("@html",
    form.to_html.gsub("</form>", "</form><script type=\"text/javascript\">document.forms[0].submit();</script>"))
  form.to_response
end

Private Instance Methods

callback_with_status_url(status) click to toggle source
# File lib/omniauth/strategies/nordea.rb, line 82
def callback_with_status_url(status)
  url = URI(callback_url)
  url.query = "omniauth_status=#{status}"
  url
end