【发布时间】:2016-12-02 00:22:48
【问题描述】:
我正在尝试为我的用户模型设置电子邮件确认以进行设计。我实际上并没有将设计用于用户名和密码等,我使用 Facebook 身份验证进行登录/注册。但是,我需要在用户注册后获取并确认他们的电子邮件。
到目前为止,我尝试了许多来源,但仍然收到错误消息:SSL_connect returned=1 errno=0 state=SSLv2/v3 read server hello A: unknown protocol
这是我到目前为止所做的:
1 执行迁移以添加设计的可确认相关列:
class AddConfirmableToDevise < ActiveRecord::Migration
def change
add_column :users, :email, :string
add_column :users, :confirmation_token, :string
add_column :users, :confirmed_at, :datetime
add_column :users, :confirmation_sent_at, :datetime
end
end
2 告诉用户模型我们正在使用可确认
class User < ActiveRecord::Base
devise :confirmable
...
#rest of model
...
end
3 将电子邮件添加到 config/initializers/devise.rb
config.mailer_sender = '<my_email_address>@gmail.com'
4 将邮件信息添加到 config/environments/development.rb
config.action_mailer.delivery_method = :smtp
config.action_mailer.smtp_settings = {
address: 'smtp.gmail.com',
port: 587,
domain: 'localhost:3000',
user_name: '<gmail_username>',
password: '<gmail_password>',
authentication: 'plain',
enable_starttls_auto: true }
5 在操作中发送电子邮件:用户控制器中的设置
def setup
user = current_user
user.email = initial_setup_params[:email]
if user.valid?
user.save!
user.send_confirmation_instructions
end
end
【问题讨论】:
标签: ruby-on-rails devise