module Passage::OpenIDHelpers

Public Instance Methods

openid_positive_assertion(oidreq, identity, details) click to toggle source
# File lib/passage/open_id.rb, line 7
def openid_positive_assertion(oidreq, identity, details)
  oidresp = oidreq.answer(true, nil, identity)
  add_sreg(oidreq, oidresp, identity, details)
  oidresp
end
openid_response(oidresp) click to toggle source
# File lib/passage/open_id.rb, line 13
def openid_response(oidresp)
  if oidresp.needs_signing
    signed_response = server.signatory.sign(oidresp)
  end
  web_response = server.encode_response(oidresp)

  case web_response.code
    when HTTP_REDIRECT
      redirect web_response.headers['location']
    else
      web_response.body
  end
end
server() click to toggle source
# File lib/passage/open_id.rb, line 27
def server
  if @server.nil?
    dir = Pathname.new(".").join('db').join('openid-store')
    store = OpenID::Store::Filesystem.new(dir)
    @server = Server.new(store, server_url)
  end
  return @server
end
server_url() click to toggle source
# File lib/passage/open_id.rb, line 36
def server_url
  "#{request.scheme}://#{request.host}:#{request.port}/"
end

Private Instance Methods

add_sreg(oidreq, oidresp, identity, details) click to toggle source
# File lib/passage/open_id.rb, line 41
def add_sreg(oidreq, oidresp, identity, details)
  return if details.nil?
  sregreq = OpenID::SReg::Request.from_openid_request(oidreq)
  return if sregreq.nil?
  p details
  sregresp = OpenID::SReg::Response.extract_response(sregreq, details)
  oidresp.add_extension(sregresp)
end