Rails中的使用者验证:Devise
来源:互联网 发布:微信小号矩阵 编辑:程序博客网 时间:2024/05/22 09:41
Rails中的使用者验证:Devise
概要:Devise是Ruby On Rails的一个三方权限认证组件,通过它可以无需编码快速生成一个带有登陆,注册.权限认证和重置密码的认证模块.
安装:
1.新建一个rails项目
# rails new ks
2.在Gemfile中添加
# gem 'devise'
3.输入bundle install 安装此套件
# bundle install
4.输入rails g devise:install生成devise相关文件
# rails g devise:install
5.编辑config/environments/development.rb 和 production.rb 加入寄信时预设的网络地址:
# config.action_mailer.default_url_options = { :host => 'localhost:3000' }
6.确认app/views/layouts/application.html.erb layout 中可以显示 flash 訊息,例如:
# <p class="notice"><%= notice %></p> # <p class="alert"><%= alert %></p>
7.新建一个controller
# rails g controller home index
- 编辑routes设置默认首页
# root 'home#index'
9.执行rails g devise User
该命令会产生:
1.在app/models文件夹下产生了一个user.rb,也就是创建了一个user model
2.在db/migrate文件夹下产生了一个migrate文件
3.在config/routes.rb文件中添加了一行 devise_for :users
10.配置user —编辑app/models/user.rb文件
11.输入rails g devise:views 产生模板,这会生成包括注册/登入/忘记密码/Email等页面,放在app/views/devise目录下面
12.输入rake db:migrate建立数据表
13.在home_controller中加上
# before_action :authenticate_user!
14.可以在Layout中加上登入,登出选项
<% if current_user %> <%= link_to('登出', destroy_user_session_path, :method => :delete) %> | <%= link_to('修改密碼', edit_registration_path(:user)) %> <% else %> <%= link_to('註冊', new_registration_path(:user)) %> | <%= link_to('登入', new_session_path(:user)) %> <% end %>
15.Devise预设不会产生first_name,last_name等属性,我们可以向users表中添加username属性
# rails g migration add_username_to_users
在生成的表中加入:
# add_column :users, :username, :string
执行rake db:migrate
16.编辑application_controller.rb加上configure_permitted_parameters方法:
class ApplicationController < ActionController::Base before_action :configure_permitted_parameters, if: :devise_controller? # ... protected def configure_permitted_parameters devise_parameter_sanitizer.for(:sign_up) << :username devise_parameter_sanitizer.for(:account_update) << :username end end
17.编辑views/devise/registrations/edit.html.erb和views/devise/registrations/new.html.erb加上username字段
<div class="field"> <%= f.label :username %><br /> <%= f.text_field :username, autofocus: true %> </div>
18.如果使用qq邮箱进行测试,请在邮箱设置里面开启smtp服务
- Rails中的使用者验证:Devise
- rails使用devise验证
- Rails使用Devise验证用户
- devise rails
- rails devise 实例
- rails use devise
- rails中使用devise
- diy一下devise的验证
- rails 使用devise完成注册、登录功能
- Rails Authentication with Devise and CanCan
- rails插件devise错误查找与解决
- rails权限管理—devise+cancan+rolify
- Rails — devise 发送修改密码邮件
- ruby on rails 中使用devise
- rails 中的模型验证validate
- Devise 加上 simple_captcha2做验证码验证
- Devise 给项目添加权限验证系统
- devise token唯一性验证结论
- Hibernate注解法一对多时,赖加载问题
- 设计模式笔记——简单工厂模式
- 招聘管理
- animation几个比较好玩的属性(alternate,及animation-fill-mode)
- 大数据之简介
- Rails中的使用者验证:Devise
- Tomcat 6.x Perm区内存泄露问题
- oracle用户创建及权限设置
- Java项目导出源代码jar包在Eclipse中查看中文注释乱码的问题
- 数据库主体在该数据库中拥有 架构,无法删除。
- C# vs 2015 to automate ONE
- mac用pip安装numpy, scipy, scikit-learn
- 利用Eclipse构建Spark集成开发环境
- 【C++】智能指针(Smart Pointer)