简介
Restful Authentication插件为你生成一个REST风格的认证系统模板,除了支持最基本的用户管理和认证功能外,还有一个可选的邮件激活功能。
作者:Rick Olson
许可: Rails’ (MIT)
SVN仓库:http://svn.techno-weenie.net/projects/plugins/restful_authentication/
安装
./script/plugin install http://svn.techno-weenie.net/projects/plugins/restful_authentication/
使用
1. 生成框架代码 ./script/generate authenticated user sessions --include-activation
这将会生成一个model,以及两个controller:
· models/user.rb,保存用户的登录信息
· controllers/users_controller.rb,提供简单的用户管理功能
· controllers/sessions_controller.rb,提供用户认证支持
–include-activation参数决定是否生成向新注册用户发送激活码的代码(一般不需要)。
2. 这一步是可选的,如果你想你的URL看起来更符合惯例一些,那么在route.rb中添加:
map.signup '/signup', :controller => 'users', :action => 'new'
map.login '/login', :controller => 'sessions', :action => 'new'
map.logout '/logout', :controller => 'sessions', :action => 'destroy'
如果你还想实现:当用户输入http://localhost:3000/时系统直接显示登录界面,那么你要删除./public/index.html文件,然后在路由里添加:
map.connect '/', :controller => 'sessions', :action => 'new'
3. 在你的系统入口添加认证,比如系统入口为公司的index页面,那么就在CompanyController的index方法里添加验证,方法如下:
class CompaniesController < ApplicationController
include AuthenticatedSystem
before_filter :login_required
def index
if defined?(current_user) and ( not current_user.nil?) then
@companies = Company.find(:all)
respond_to do |format|
format.html # index.html.erb
format.xml { render :xml => @companies }
end
else
redirect_to new_session_path
end
end
..............
end
那么当你第一次在地址栏里输入http://localhost:3000/companies 时系统将自动跳转到
http://localhost:3000/session/new,也就是登录界面,输入用户名、密码后点击登录,如果页面没有跳转,那么你需要修改User(Model)的验证方法authenticate,修改成如下内容:
def self.authenticate(login, password)
# 原代码如下,涉及到 activated_at IS NOT NULL,即第1步生成框架时使用了参数
#–include-activation 的缘故,可能造成验证不成功
# u = find :first, :conditions => ['login = ? and activated_at IS NOT NULL', login]
#修改后的代码如下
u = find_by_login(login) # need to get the salt
u && u.authenticated?(password) ? u : nil
end
4. 控制验证成功后页面跳转的位置:修改SeesionController,找到 redirect_back_or_default('/'),将其修改为你的首页,如redirect_back_or_default('/companies'),这样验证成功后将跳转到conpany列表。
5. 参考资料 http://www.letrails.cn/archives/52
<!--EndFragment-->
分享到:
相关推荐
"http_authentication"和"restful-authentication"是两个早期的Rails登录和验证插件,它们为Rails应用提供了基本的身份验证功能。 HTTP基本认证(http_authentication)是HTTP协议的一部分,基于HTTP头部进行身份...
根据提供的文件信息,我们可以推断出这是一本关于如何使用Ruby on Rails框架来构建RESTful应用程序和服务的专业书籍。书名为《RESTful Rails Development》,作者为Silvia Puglisi,出版时间为2015年10月。接下来,...
- 令牌认证(token authentication)。 - 外部服务集成,如 OAuth。 #### 七、文件上传 第九章讨论了 **文件上传** 的实现方式,这是 Web 应用中常见的功能之一。 - **文件上传**: - 实现用户可以上传图片、文档...
Rails的路由系统支持RESTful模式,如`resources :users`会自动创建CRUD操作的路由。 3. **JSON响应** Rails 6默认使用JBuilder或ActiveModelSerializers来生成JSON响应。例如,为用户模型创建一个简单的序列化器:...
rails2.0的内容管理系统,可以发布文档、CVS库和Web资源3中资源,其中文档可以上传下载附件。支持打Tag。用户注册登录使用restful_authentication,分页使用will_paginate,Gem版本1.3.5
7. **Authentication and Authorization**:讲解了实现用户认证和权限控制的各种方法,如Devise、CanCanCan等,确保应用的安全性。 8. **RESTful Design**:REST(Representational State Transfer)是一种架构风格...
它在后端使用Ruby on Rails生成RESTful API,在前端使用React / Redux,并使用Pusher无缝实现WebSockets。 特征 使用Devise通过自动演示登录进行用户身份验证 即时通讯 讯息格式 通知事项当前频道通知 频道数 直接...
4. **用户认证与授权**:为了确保投票公正性,系统可能实现了用户登录功能,涉及身份验证(Authentication)和授权(Authorization)。这可能涉及到OAuth2、JWT(JSON Web Tokens)或其他安全机制,确保只有合法用户...
6. **认证与授权(Authentication & Authorization)**: MeetingZero API 可能会使用如Devise这样的库进行用户认证,而Pundit或CanCanCan则用于控制不同用户对资源的访问权限。 7. **错误处理(Error Handling)**...
3. **认证与授权**:为了保护系统安全,后台管理需要实现用户认证(Authentication)和授权(Authorization)。认证通常涉及用户名和密码验证,而授权则确定用户能访问哪些资源或执行哪些操作。Spring Security、JWT...
8. **Authentication & Authorization**:在实际项目中,你可能会遇到用户认证和授权的问题。JWT(JSON Web Tokens)或OAuth2可能是实现这些功能的常见选择。 9. **Testing**:Angular和Rails都支持集成测试、单元...
3. **RESTful API设计**:为了使前端(可能是网页或移动应用)能够与后台交互,后台需要提供RESTful API接口。这些接口遵循统一的HTTP方法(GET、POST、PUT、DELETE等),允许前端进行数据获取、提交、更新和删除...
- 认证与授权:内置的用户认证系统,如Spring Security或Django的Authentication,帮助开发者轻松实现用户登录、权限控制等功能。 - MVC模式:遵循MVC架构,将业务逻辑、数据和界面分离,提高代码可读性和可维护性。...
1. **Web框架**:新闻发布系统的开发通常基于某个Web框架,如Spring Boot、Django、Ruby on Rails或ASP.NET。这些框架提供了一种结构化的开发方式,简化了HTTP请求处理、数据库交互和模板渲染等任务。 2. **数据库...
8. **认证与授权(Authentication & Authorization)**:为了保护API,需要实现认证和授权机制。常见的方案有Token-based认证(如JWT)和OAuth2。 9. **限速(Rate Limiting)**:限制客户端对API的访问频率是防止...