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 -~----------~----~----~----~------~----~------~--~---