Hi, I am new to ruby/rails. learning fast but still getting stuck on key
places..
so I have a db and a colum called email and crypt one is obviosly the
email of the users and the other the password column.
so I have this controller for the main application controller:
-----
protected
def login_required
session[:auth] ? yield : render(:template =>
''login/login'')
end
-----
this login controller:
-----
skip_filter :login_required
def logout(msg = "")
reset_session
flash[:notice] = msg if msg.length
redirect_to ''/''
end
def check
if not request.post?
logout("Invalid request.")
elsif session[:auth] = Login.authenticate(params[:email,
params[:crypt])
redirect_to :back
else
logout("Your user name and password are invalid.")
end
end
-------
and this as model:
set_table_name "users" # this is because the table is not named
login
but users.
validates_presence_of :email
def self.authenticate(email, crypt)
password = crypt
if email
salt =
[Array.new(6){rand(256).chr}.join].pack("m").chomp
expected_password = password.crypt(salt)
if Users.crypt != expected_password
email = nil
end
end
email
end
----------
and here is my views:
<div class="depot-form">
<%= error_messages_for ''login'' %>
<fieldset>
<legend>Enter your email and password</legend>
<% form_tag do %>
<p>
<label for="email">Email</label><br/>
<%= text_field_tag :email, params[:email] %>
</p>
<p>
<label for="crypt">Password</label><br/>
<%= password_field_tag :crypt, params[:crypt] %>
</p>
<%= submit_tag "Login" %>
<% end %>
</fieldset>
</div>
the issue: I see the form.. that is easy ;-)
but I put in a real email and password and does not work..
when I put a wrong one it does not give me the result I expect..
I use the path and no matter were I go it will redirect me to the
login(this is good)
www.domain.org/login
Any help will be VERY apreciated.
Thanks
--~--~---------~--~----~------------~-------~--~----~
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-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
To unsubscribe from this group, send email to
rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
For more options, visit this group at
http://groups.google.com/group/rubyonrails-talk?hl=en
-~----------~----~----~----~------~----~------~--~---
rek2
2008-Mar-17 04:02 UTC
[Wrong] Problems with Auth to my mysql db.[right] problem with custom authentification on rails using mysql
sorry the title of my last email is confusing since looks like I am having trouble with mysql, but no is with my code. rek2 escribió:> Hi, I am new to ruby/rails. learning fast but still getting stuck on key > places.. > so I have a db and a colum called email and crypt one is obviosly the > email of the users and the other the password column. > so I have this controller for the main application controller: > ----- > protected > def login_required > session[:auth] ? yield : render(:template => ''login/login'') > end > ----- > > this login controller: > > ----- > skip_filter :login_required > > def logout(msg = "") > reset_session > flash[:notice] = msg if msg.length > redirect_to ''/'' > end > > def check > if not request.post? > logout("Invalid request.") > elsif session[:auth] = Login.authenticate(params[:email, > params[:crypt]) > redirect_to :back > else > logout("Your user name and password are invalid.") > end > end > > ------- > > and this as model: > > set_table_name "users" # this is because the table is not named login > but users. > > validates_presence_of :email > > def self.authenticate(email, crypt) > password = crypt > if email > salt = [Array.new(6){rand(256).chr}.join].pack("m").chomp > expected_password = password.crypt(salt) > if Users.crypt != expected_password > email = nil > end > end > email > end > ---------- > > and here is my views: > > <div class="depot-form"> > > <%= error_messages_for ''login'' %> > > <fieldset> > <legend>Enter your email and password</legend> > <% form_tag do %> > <p> > <label for="email">Email</label><br/> > <%= text_field_tag :email, params[:email] %> > </p> > > <p> > <label for="crypt">Password</label><br/> > <%= password_field_tag :crypt, params[:crypt] %> > </p> > <%= submit_tag "Login" %> > <% end %> > </fieldset> > </div> > > > the issue: I see the form.. that is easy ;-) > but I put in a real email and password and does not work.. > when I put a wrong one it does not give me the result I expect.. > > I use the path and no matter were I go it will redirect me to the > login(this is good) > www.domain.org/login > > > Any help will be VERY apreciated. > > Thanks > > > > >-- http://rek2.binaryfreedom.info http://www.spboston.org ---------------------------------------------- a social revolution is the only feasible route to the establishment of socialism. - Karl Marx - --~--~---------~--~----~------------~-------~--~----~ 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-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org 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 -~----------~----~----~----~------~----~------~--~---
Frederick Cheung
2008-Mar-17 08:41 UTC
Re: Problems with Auth to my mysql db.[right] problem with custom authentification on rails using mysql
> > def self.authenticate(email, crypt) > > password = crypt > > if email > > salt = [Array.new(6){rand(256).chr}.join].pack("m").chomp > > expected_password = password.crypt(salt) > > if Users.crypt != expected_password > > email = nilYou do know that you need the salt to be the same as when you originally created the user right? (if not what would be the point of it?) Fred --~--~---------~--~----~------------~-------~--~----~ 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-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org 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 -~----------~----~----~----~------~----~------~--~---