Vi propongo un simpatico quesito…
Sto studiando in questi giorni se funzionano bene insieme il
restful_authentication l’openid_authentication. Seguendo un paio di
guide su internet, ma soprattutto il README del plugin
openid_authentication, ho inserito nel controller SessionsController
questo metodo (modificato con qualche chiamata al logger):
def open_id_authentication(identity_url)
# Pass optional :required and :optional keys to specify what sreg
fields you want.
# Be sure to yield registration, a third argument in the
#authenticate_with_open_id block.
logger.debug “Sono dentro il metodo di autenticazione open id”
authenticate_with_open_id(identity_url,
:required => [ :nickname, :email ],
:optional => :fullname) do |status, identity_url,
registration|
logger.debug “Ho ricevuto lo stato #{status}”
if (status === :successful)
logger.debug “Qualcosa direi che non va …”
end
case status
when :missing
logger.debug “Mancato!”
failed_login “Sorry, the OpenID server couldn’t be found”
when :canceled
logger.debug “Cancellato!”
failed_login “OpenID verification was canceled”
when :failed
logger.debug “Fallito!”
failed_login “Sorry, the OpenID verification failed”
when :successful
logger.debug “Andato!”
if @current_user =
@account.users.find_by_identity_url(identity_url)
assign_registration_attributes!(registration)
if current_user.save
successful_login
else
failed_login "Your OpenID profile registration failed: " +
@current_user.errors.full_messages.to_sentence
end
else
failed_login "Sorry, no user by that identity URL exists"
end
else
logger.debug "Nessuno dei precedenti"
end
end
logger.debug "Sono fuori dal metodo di autenticazione open id"
end
Il problema e` questo: nei log leggo “Qualcosa direi che non va …” e
poi “Nessuno dei precedenti”. A quanto pare lo statement case si impasta
da qualche parte, eppure il controllo status === :successful fatto
appena prima va a buon fine … Qualcuno sa darmi una mano? Grazie mille
-daniele-