Ruby on Rails Tuesday, May 1, 2012

On May 1, 2:00 pm, Daniel Coston <li...@ruby-forum.com> wrote:
> Application will not authenticate [sends alert of invalid credentials].
> Using user credentials created via rake db:seed. How do I get it to
> authenticate?
>
> Agent Model
> ----------------
>
>       def Agent.authenticate(name,password)
>         if agent = find_by_name(name)
>           if agent.hash == encrypt_password(password,agent.salt)

Have you tried calling agent.hash ? I'd wager that that methods
returns something you don't expect, because hash is a method all ruby
objects have - I suspect that you're calling that method rather than
the one that would return the value of your hash column. You can get
at the attribute value via read_attribute, although I'd recommend
avoiding dangerous names like that.

Fred



>             agent
>           end
>         end
>       end
>
> SessionController
> ----------------------
>
>   def create
>     if agent = Agent.authenticate(params[:name],params[:password])
>       session[:agent_id] = agent.id
>       redirect_to base_url
>     else
>       redirect_to login_url,:alert=>"Invalid credentials"
>     end
>   end
>
> Attachments:http://www.ruby-forum.com/attachment/7352/agent.rbhttp://www.ruby-forum.com/attachment/7353/application_controller.rbhttp://www.ruby-forum.com/attachment/7354/sessions_controller.rb
>
> --
> Posted viahttp://www.ruby-forum.com/.

--
You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group.
To post to this group, send email to rubyonrails-talk@googlegroups.com.
To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.

No comments:

Post a Comment