Поиск:

Ответ в темуСоздание новой темы Создание опроса
> authlogic и password, Password is not valid 
:(
    Опции темы
efimalex
Дата 5.10.2010, 19:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 5.10.2010

Репутация: нет
Всего: нет



Здрасте, проблема такова, решил организовать аутентификацию с помощью authlogic, все делал по мануалу http://github.com/binarylogic/authlogic_example.

Код

class UsersController < ApplicationController
  before_filter :require_no_user, :only => [:new, :create]
  before_filter :require_user, :only => [:show, :edit, :update]

  def new
    @user = User.new
  end

  def create
    @user = User.new(params[:user])
    if @user.save
      flash[:notice] = "Account registered!"
      redirect_back_or_default account_url
    else
      render :action => :new
    end
  end

  def show
    @user = @current_user
  end

  def edit
    @user = @current_user
  end

  def update
    @user = @current_user # makes our views "cleaner" and more consistent
    if @user.update_attributes(params[:user])
      flash[:notice] = "Account updated!"
      redirect_to account_url
    else
      render :action => :edit
    end
  end
end

 

Код

class UserSessionsController < ApplicationController
  before_filter :require_no_user, :only => [:new, :create]
  before_filter :require_user, :only => :destroy

  def new
    @user_session = UserSession.new
  end

  def create
    @user_session = UserSession.new(params[:user_session])
    #@user_session = UserSession.new(:login => params[:login], :password => params[:password], :remember_me => params[:remember_me]);
    if @user_session.save
      flash[:notice] = "Login successful!"
      redirect_back_or_default account_url
    else
      render :action => :new
    end
  end

  def destroy
    current_user_session.destroy
    flash[:notice] = "Logout successful!"
    redirect_back_or_default new_user_session_url
  end
end


Код

class ApplicationController < ActionController::Base
#  protect_from_forgery
   helper :all
  helper_method :current_user_session, :current_user
  filter_parameter_logging :password, :password_confirmation

  private
    def current_user_session
      return @current_user_session if defined?(@current_user_session)
      @current_user_session = UserSession.find
    end

    def current_user
      return @current_user if defined?(@current_user)
      @current_user = current_user_session && current_user_session.record
    end

    def require_user
      unless current_user
        store_location
        flash[:notice] = "You must be logged in to access this page"
        redirect_to new_user_session_url
        return false
      end
    end

    def require_no_user
      if current_user
        store_location
        flash[:notice] = "You must be logged out to access this page"
        redirect_to account_url
        return false
      end
    end

    def store_location
      session[:return_to] = request.request_uri
    end

    def redirect_back_or_default(default)
      redirect_to(session[:return_to] || default)
      session[:return_to] = nil
    end
end



Код

require 'digest/sha1'
#require 'familynet_sha1_crypto_method'
class User < ActiveRecord::Base
 # acts_as_authentic
  acts_as_authentic do |c|
     c.crypto_provider = Authlogic::CryptoProviders::Sha1
     c.check_passwords_against_database = false
     c.validates_length_of_password_field_options = { :within => 6..20, :if => :password_required? }
     c.validates_length_of_password_confirmation_field_options = { :within => 6..20, :if => :password_required? }
     c.validates_length_of_login_field_options = { :within => 5..20 }
     c.validates_format_of_login_field_options = { :with => /^[\sA-Za-z0-9_-]+$/ }
     c.validates_length_of_email_field_options = { :within => 3..100 }
     c.validates_format_of_email_field_options = { :with => /^([^@\s]+)@((?:[-a-z0-9A-Z]+\.)+[a-zA-Z]{2,})$/ }
  end

protected
    def password_required?
      crypted_password.blank? || !password.blank?
    end
end

соответсвенно база создана и есть таблица usesrs. Регистрация проходит на ура, открываю таблицу и вижу инфу логин, crypted_password, password_salt и т.д.
Но вот при login говоит:
1 error prohibited this user session from being saved

There were problems with the following fields:
Password is not valid

пароль точно valid, в чем может быть проблема? т.е. как я понял проверка пароля введенного в форме login с зашифрованным паролем в базе не проходит почемуто.
PM MAIL   Вверх
source777
Дата 5.10.2010, 20:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1878
Регистрация: 12.3.2007

Репутация: 12
Всего: 56



Цитата(efimalex @  5.10.2010,  19:38 Найти цитируемый пост)
пароль точно valid

Чем докажешь?  Давай хотя бы консольный пример без пользовательского ввода.


--------------------
Если бы программистам платили за то, чтобы убирать код из программы вместо того, чтобы добавлять его, программы были бы намного лучше © Николас Негропонте
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Ruby on Rails"
source777
  • С чего начать? начинаем
  • Документацию смотрим тут
  • Обязательно следуйте правилам Vingrad.
  • Пожалуйста, прочитайте рекомендации по работе в форуме и навигации по Vingrad.
  • Для вставки кодов Ruby используйте тег: [code=ruby]код[/code]. Когда в будущем подсветка синтаксиса для Ruby будет реализована, весь исходных код преобразится.
  • Используйтe чекбокс "Транслит" (возле кнопок кодов), если у Вас нет русских шрифтов.
  • Помните, для каждого вопроса должна быть своя тема.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, source777.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Ruby On Rails | Следующая тема »


 




[ Время генерации скрипта: 0.0786 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.