标签: bcrypt-ruby

无法为新的Rails安装安装bcrypt-ruby

我在新的Rails安装上遇到以下错误.我运行bundle install并在安装了一堆宝石之后,在尝试安装bcrypt-ruby时遇到错误.我正在使用一台全新的Mac OS X 10.8.2,最新的Ruby(v1.9.3-p194),新的Rails(v3.2.8)和标准的Gemfile.

安装activerecord(3.2.8)

安装activeresource(3.2.8)

使用本机扩展安装bcrypt-ruby(3.0.1)

Gem :: Installer :: ExtensionBuildError:错误:无法构建gem原生扩展.

    /Users/me/.rvm/rubies/ruby-1.9.3-p194/bin/ruby extconf.rb  creating Makefile
Run Code Online (Sandbox Code Playgroud)

make compiling bcrypt_ext.c make:/usr/bin/gcc-4.2:没有这样的文件或目录:* [bcrypt_ext.o]错误1

Gem文件将保留在/Users/me/.rvm/gems/ruby-1.9.3-p194@mygemset/gems/bcrypt-ruby-3.0.1中进行检查.结果记录到/Users/me/.rvm/gems/ruby-1.9.3-p194@mygemset/gems/bcrypt-ruby-3.0.1/ext/mri/gem_make.out安装bcrypt-ruby时出错(3.0 .1),而Bundler无法继续.gem install bcrypt-ruby -v '3.0.1' 在捆绑之前确保成功.

更新:忘记提及,不仅是这款Mac OS X 10.8.2的全新Mac,还有昨天安装的全新Xcode和命令行工具.然后我安装了RVM和brew.

gem rubygems bcrypt ruby-on-rails-3.2 bcrypt-ruby

3
推荐指数
1
解决办法
3878
查看次数

未知属性栏4

我是Rails 4开发和轨道的新手.我红色官方"入门指南"指南,其中显示如何创建博客.所以我想从0注册,auth系统做我自己的.

在创建新用户时,我收到此错误.我不明白我做错了什么.有什么建议?

Git回购:https: //github.com/pumpurs/auth

UsersController中的ActiveRecord :: UnknownAttributeError#创建未知属性:密码

class UsersController < ApplicationController 
   def new
     @user = User.new
   end
   def create 
     @user = User.new(params[:user].permit(:password, :email, :password_confirmation))
   end
private
   def user_params
     params.require(:user).permit(:password, :email, :password_confirmation)
   end
end
Run Code Online (Sandbox Code Playgroud)

型号文件:

class User < ActiveRecord::Base
  before_save :encrypt_password
  validates_confirmation_of :password
  validates_presence_of :password, :on => :create 
  validates_presence_of :email
  validates_uniqueness_of :email

  def enrypt_password
if password.present?
  self.password_salt = BCript::Engine.generate_salt
  self.password_hash = BCript::Engine.generate.hash_seret(password, password_salt)
    end    
 end
end
Run Code Online (Sandbox Code Playgroud)

ruby ruby-on-rails bcrypt-ruby

3
推荐指数
1
解决办法
9715
查看次数

无法激活bcrypt-ruby(〜> 3.0.0),已激活bcrypt-ruby-3.1.2

当我尝试运行时, heroku run rake db:migrate我收到此错误:

can't activate bcrypt-ruby (~> 3.0.0), already activated bcrypt-ruby-3.1.2. Make sure all dependencies are added to Gemfile.

我更新了我的Gemfile并指定了bcrypt的版本但是没有用.一切都在正确的分支上.

的Gemfile:

source 'https://rubygems.org'
ruby '2.0.0'
#ruby-gemset=railstutorial_rails_4_0

gem 'rails', '4.0.0'
gem 'sass-rails', '4.0.1'
gem 'uglifier', '2.1.1'
gem 'coffee-rails', '4.0.1'
gem 'jquery-rails', '3.0.4'
gem 'turbolinks', '1.1.1'
gem 'jbuilder', '1.0.2'
gem 'bootstrap-sass', github: 'thomas-mcdonald/bootstrap-sass', branch: '3'
gem 'bcrypt-ruby', '~> 3.1.2'

group :development, :test do
  gem 'sqlite3', '1.3.8'
  gem 'rspec-rails', '2.13.1'
end

group :test do
  gem 'selenium-webdriver', '2.35.1'
  gem 'capybara', '2.1.0' …
Run Code Online (Sandbox Code Playgroud)

ruby ruby-on-rails heroku bcrypt-ruby

3
推荐指数
1
解决办法
2547
查看次数

使用bcrypt-ruby使用版本$ 2y验证散列密码

我们需要使用Ruby来针对现有的用户数据库授权用户.用户的密码都是使用password_compat PHP库生成的.所有哈希密码都以$ 2y开头.

我一直在使用bcrypt-ruby来尝试验证用户,但我没有找到任何成功.

#This user's password is "password"
irb(main):041:0> g = BCrypt::Password.new("$2y$10$jD.PlMQwFSYSdu4imy8oCOdqKFq/FDlW./x9cMxoUmcLgdvKCDNd6")
=> "$2y$10$jD.PlMQwFSYSdu4imy8oCOdqKFq/FDlW./x9cMxoUmcLgdvKCDNd6"
irb(main):042:0> g == "password"
=> false
irb(main):044:0> g.version
=> "2y"
irb(main):045:0> g.cost
=> 10
irb(main):046:0> g.salt
=> "$2y$10$jD.PlMQwFSYSdu4imy8oCO"
irb(main):047:0> g.hash
=> -219334950017117414
Run Code Online (Sandbox Code Playgroud)

我对bcrypt或加密一般都不是很熟悉.bcrypt-ruby可以处理$ 2y吗?我查看了源代码,但我认为不可以.这是底层操作系统的故障(我使用OS X)?

php ruby bcrypt bcrypt-ruby

3
推荐指数
1
解决办法
1525
查看次数

使用 has_secure_password 时出错。无法加载此类文件 -- 2.0/bcrypt_ext

我是 Ruby on Rails ans 的新手,所以我正在学习 Rails 4 敏捷 Web 开发教程。所以用户可以登录,为此我在文件 user.rb 中使用了 has_secure_password:

class User < ActiveRecord::Base
    has_secure_password
  validates :name, presence: true, uniqueness: true
end
Run Code Online (Sandbox Code Playgroud)

但是当我运行服务器时,我收到错误:

cannot load such file -- 2.0/bcrypt_ext
Run Code Online (Sandbox Code Playgroud)

这是应用程序跟踪

app/models/user.rb:2:in `<class:User>'
app/models/user.rb:1:in `<top (required)>'
app/controllers/users_controller.rb:7:in `index'
This error occurred while loading the following files:
   bcrypt
   bcrypt_ext
   2.0/bcrypt_ext
Run Code Online (Sandbox Code Playgroud)

我在 gemfile 中包含 gem 'bcrypt-ruby', '~> 3.0.0' 但它仍然不起作用。

我在类似的问题中读到它与“捆绑安装”有关,但我无法解决问题。

提前致谢

ruby-on-rails bundle-install bcrypt-ruby

2
推荐指数
1
解决办法
2568
查看次数

当我有正确数量的字符时,为什么我的 Rails 应用程序返回“密码太短(最少 6 个字符)”?

我正在构建一个简单的注册页面。

这是我的用户模型及其验证和关联:

class User < ApplicationRecord
    has_secure_password

    has_many :posts
    has_many :comments
    has_many :likes

    validates :username, presence: true, uniqueness: true
    validates :password, presence: true, length: { minimum: 6 }
end
Run Code Online (Sandbox Code Playgroud)

这是我的用户迁移:

class CreateUsers < ActiveRecord::Migration[6.0]
  def change
    create_table :users do |t|
      t.string :name
      t.string :username
      t.string :password_digest
      t.integer :age
      t.integer :years_in_the_labor
      t.string :title
      t.string :location
      t.string :ministry

      t.timestamps
    end
  end
end
Run Code Online (Sandbox Code Playgroud)

这也是我的用户控制器创建方法:

def create
    @user = User.new(name: params[:name], title: params[:title], username: params[:username], password: [:password])

    if @user.valid?
        @user.save
        render json: { status: …
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails fetch bcrypt-ruby reactjs

1
推荐指数
1
解决办法
296
查看次数

如何解决这个问题,当我尝试在本地系统上进行身份验证时,它工作正常,但是当上传到 heroku 时,它会返回错误 500?

我是 Rails 和 React 新手,这可能是一个简单的问题,但我似乎无法弄清楚。

我正在尝试使用 ruby​​ on Rails 和 React 作为客户端来实现简单的 jwt 身份验证。我按照以下建议的步骤进行操作: https://www.pluralsight.com/guides/token-based-authentication-with-ruby-on-rails-5-api

它在我的本地系统上按预期工作,但是当我将应用程序上传到heroku时,它总是返回错误:500。所有其他“发布”和“获取”请求正常工作。仅当我尝试进行身份验证并取回 auth_token 时,才会遇到 500 错误。

这是请求格式帖子:localhost:3001/api/authenticate

与身体:

{
    "email": "evin@xyz.com",
    "password": "evin"
}
Run Code Online (Sandbox Code Playgroud)

我通过使用 get 来验证这些数据在 heroku 上是否可用,效果非常好。

我已经花了两天多的时间来解决这个问题。网上有关此身份验证的信息非常少。有很多关于使用 auth0 的建议。但我在这种形式的身份验证方面找不到太多帮助。

这就是我所拥有的

#Path: /app/controllers/application_controller.rb

class ApplicationController < ActionController::API
  before_action :authenticate_request
  attr_reader :current_user

  private

  def authenticate_request
    @current_user = AuthorizeApiRequest.call(request.headers).result
    render json: { error: 'Not Authorized' }, status: 401 unless @current_user
  end
end


#Path: app/controllers/api/authentication_controller.rb

class Api::AuthenticationController < ApplicationController
 skip_before_action :authenticate_request

 def authenticate
   command = AuthenticateUser.call(params[:email], params[:password]) …
Run Code Online (Sandbox Code Playgroud)

ruby heroku jwt bcrypt-ruby heroku-postgres

0
推荐指数
1
解决办法
1695
查看次数