- 浏览: 222364 次
文章分类
- 全部博客 (155)
- activerdf (1)
- html (0)
- depoly (1)
- src_present (1)
- ria (1)
- beast (2)
- cache (1)
- acts_as_atggable (1)
- http (1)
- talk (1)
- rest (1)
- rake (1)
- vim (2)
- active_resource (1)
- jruby activerecord_jdbc (1)
- nginx (1)
- plugin (1)
- gui (1)
- push (1)
- 介紹 (1)
- rails (19)
- regex (1)
- svn (1)
- 說明 (13)
- gem (4)
- ruby (16)
- rails12 (2)
- fastcgi (1)
- os (1)
- mongrel (5)
- scale (4)
- quickref (1)
- 安裝 (5)
- tiobe_index (2)
- planet (1)
- lighttpd (4)
- Capistrano (1)
- 嘴砲 (2)
- performance (4)
- ide (6)
- jruby (12)
- railsconf (1)
- activerecord (2)
- ajax (3)
- ruby.net (1)
- 程式 (1)
- actionmailer (1)
- company (2)
- security (1)
- redmine (1)
- book (2)
- news (2)
- 廣告 (1)
最新评论
-
bluerose:
你好,我下载了文件是Textile格式的。应该怎么阅读呢?我想 ...
Textile,RedCloth,Vim -
whg333:
谢谢,LZ是香港或台湾人士?怎么都是繁体?
學習 Ruby on Rails 要看的書 -
jerry:
https可以作吗?
Net::HTTP 使用方式 -
thinhair:
能不能具体点? 这个Config文件在那啊?
用 JRuby 來連接 Oracle -
dearsuper:
就是希望少占资源。
Another Ruby IDE:InterlliJ Idea for Ruby Plugin launch
Rails 社群一向是使用最方便的 Session 來做 login,而且 Rails 的 Session 也實做的非常方便。不過有些時候 Session 也有不方便的地方,像是關掉 Borwser 就要重新 Login,如果我們希望能夠做到永久 Login ,那該怎麼搞呢?
我採用這個網頁的方式,他的好處是只在 cookie 存入一個隨機的 id ,並不會存任何資訊在 cookie 裡面。
1. 安裝 UUID 的套件
因為要隨機產生 id ,總是要一個亂數產生的套件,這裡我們就用原作者的選擇 UUID
gem i uuidtools
2. DB 裡面新增一個 Persistent Login 的 table
我們新增一個 table ,把他叫做persistent_logins,結構大概是 id , uid , user_id 當作 interger ,create_on 當作 datetime。user_id 代表相對應的 user table id ,uid 就是放到 cookie 裡面的隨機 id 。
3. 在使用者已經 login 成功的的地方放入下面的 code
4. 在判斷是否 login 的地方加入這些 code
5. logout 的地方加入這樣的code
我採用這個網頁的方式,他的好處是只在 cookie 存入一個隨機的 id ,並不會存任何資訊在 cookie 裡面。
1. 安裝 UUID 的套件
因為要隨機產生 id ,總是要一個亂數產生的套件,這裡我們就用原作者的選擇 UUID
gem i uuidtools
2. DB 裡面新增一個 Persistent Login 的 table
我們新增一個 table ,把他叫做persistent_logins,結構大概是 id , uid , user_id 當作 interger ,create_on 當作 datetime。user_id 代表相對應的 user table id ,uid 就是放到 cookie 裡面的隨機 id 。
3. 建立一個 PersistentLogin 的 Model
裡面的結構很簡單,之前說的 UUID 就是用在這裡,其實可以在這裡換另外一個亂數產生器。
class PersistentLogin < ActiveRecord::Base
belongs_to :user
before_create :assign_uid
private
def assign_uid
self.uid = UUID.random_create.to_s
end
end
p = PersistentLogin.create(:user=>u)在裡面,u 就是這個使用者的 user model ,他會在 cookie 裡面放 p_session_id 這個值,expire time 是 7天。
cookies[:p_session_id] = {:value => p.uid, :expires => Time.now + 7.days}
4. 在判斷是否 login 的地方加入這些 code
def get_current_user
if session[:user].nil?
if cookies[:p_session_id] && p = PersistentLogin.find_by_uid(cookies[:p_session_id])
session[:user] = c_user.id
end
end
end
5. logout 的地方加入這樣的code
def logout這裡的code 相當的 rough ,但是卻很容易實做出來。
session[:user] = nil
if cookies[:p_session_id] && p = PersistentLogin.find_by_uid(cookies[:p_session_id])
p.destroy
end
cookies.delete :p_session_id
end
发表评论
-
Rails 取名的一些禁忌
2007-06-26 06:11 1291今天寫 Rails 寫到一半,突然發現出現wrong numb ... -
Rails 2.0 預計的新特色
2007-06-03 08:03 983Ruby on Rails 作者 DHH 在 Rails Co ... -
script/plugin
2007-05-05 09:49 928well, 由於我跟 Rails 不熟 ... -
搞清楚你的 Rails Version
2007-04-18 06:13 1149目前使用 Rails 的網站, ... -
Fragment Cache Part 2
2007-03-28 12:12 1157上次介紹了如何使用最基本的 Fragment Cache,現在 ... -
Fragment Cache Part 1
2007-03-27 14:27 1432之前介紹過 Page Cache,那是一個將所有動態內容都變成 ... -
DHH 寫了一個 OpenID 的 Rails Plugin
2007-02-28 14:50 1206既然大家都覺得 OpenID 很有搞頭,那身為尖端科技的結晶的 ... -
一個在 Rails 跟 Django 徘徊設計師的真情告白
2007-02-28 15:26 2228AjaxWhoIs 這個網站的作者最近發表一篇文章 Why I ... -
修改 Ruby 預設的 Time 顯示格式
2007-02-25 08:21 1126Rails 預設的 Datetime format 是類似這樣 ... -
Rails 的原始碼行數比?
2007-02-17 14:24 1140實例看完 JavaEye 今天的文章,發現到根據 Robbin ... -
Pagination Collection:進階版的分頁
2007-02-06 00:00 1323當我第一眼看到 Pagination 時,我感覺到他是一個很好 ... -
利用 File_column 來做到縮圖
2007-01-23 09:25 1288圖片上傳,縮圖製作這幾個功能可以說是 Web App 做到爛掉 ... -
Rails 1.2 所有 gem 提供下載
2007-01-19 14:49 9865因為你們好像有國外網路連線速度上面的問題 所以我將所有 Rai ... -
HTML?New Template System ?
2007-01-18 00:29 1375現行 Scripting Language 不 ... -
Faster CSV:做報表的好幫手
2007-01-16 09:23 1389FasterCSV 是 Ruby 當中一個處理 CSV 檔案的 ... -
Windows 上面安裝 Ruby on Rails
2007-01-05 13:05 1741其實不太想寫 Windows Tuto ... -
加強 Active Record 的關連性
2007-01-10 11:54 866很多時候我們會使用 Active Record裡面的條件式關連 ... -
「易遊」使用 Ruby on Rails 的原因
2007-01-10 14:20 1210易遊是一個對岸開發, ...
相关推荐
VMware Persistent Memory Performance on vSphere 6.7是关于在VMware vSphere 6.7版本上实施和测试持久内存(PMEM)性能的一份专业文档。vSphere作为VMware的核心虚拟化平台之一,其对新硬件技术的支持能力一直受到...
1、安装Build With Parameters Plugin,Persistent Parameter Plugin 插件 说明:安装Build With Parameters Plugin为了实现参数化构建,安装Persistent Parameter Plugin 为了实现,构建时,默认参数值取自上次...
在Android系统中,`android:persistent="true"` 是一个重要的属性,它用于定义应用程序是否应该在系统启动时持续运行,并且在系统运行期间始终保持活动状态。这个属性通常在应用程序的AndroidManifest.xml文件中的`...
MySaveGame_Persistent.sav
engine-persistent.c
Advanced Persistent Training 英文epub 本资源转载自网络,如有侵权,请联系上传者或csdn删除 本资源转载自网络,如有侵权,请联系上传者或csdn删除
标题 "udev network -70-persistent-net.rules" 涉及到的是Linux系统中的设备管理器udev以及网络接口命名规则。udev是Linux内核设备管理器的用户空间部分,负责在系统启动时动态地为硬件设备分配设备节点,并管理...
在Laravel框架中,"persistent-settings"通常指的是应用程序中存储并跨请求持久化的配置设置。这些设置可以在不同的用户会话、请求之间保持不变,对于管理全局应用状态或用户个性化设置非常有用。本教程将深入探讨...
标题中的"CSMA.rar_1 persistent csma_1-persistent_CSMA persistent_csma_信道检"指的是CSMA的一种变体,即1-persistent CSMA,该变体主要关注如何有效地检测和利用信道。 1-persistent CSMA是CSMA的一个子类型,...
标题中的“persistent object of Delphi”指的是Delphi编程环境中关于持久化对象的概念。在软件开发中,持久化是指将程序中的对象状态保存到非易失性存储(如硬盘)中,以便在后续运行时能够恢复这些状态。在Delphi...
BBoss Persistent是一个轻量级的持久层框架,它提供了方便的方式来处理这些大字段。本文将深入探讨在BBoss Persistent 1.0.2中如何高效地管理CLOB和BLOB数据。 首先,CLOB用于存储大量的文本数据,如长篇文章或XML...
2. **Ruby on Rails**:GitLab的主要应用框架,用于处理业务逻辑和用户交互。Ruby on Rails容器会运行GitLab的Web服务器,处理由NGINX转发的请求。 3. **Redis**:作为一个内存数据结构存储,Redis被用作GitLab的...
11) — an introduction to the Persistent Publish/Subscribe service, and how to run it • Objects and their attributes (p. 13) — a description of the PPS service's objects and their attributes • ...
eXpress Persistent Objects for .NET 在对象和关系数据库架起了有效的桥梁,它为开发者提供了创建真正商业对象的自由,而无需涉及将它们映射到数据库表格的这一单调和复杂的过程。eXpress Persistent Objects for ...
这是一个Rails库,为应用程序提供数据库支持的用户会话。 这样可以确保可以从服务器使用户会话无效,并且可以轻松跟踪用户活动。 在会话中简单地设置用户ID的“传统”方式是不安全且不明智的。 如果仅执行以下示例...
persistent-4.7.0-cp38-cp38-win32
在Android系统中,`persistent`属性是一个非常关键的特性,它用于定义应用程序的行为,特别是与系统启动和应用程序生命周期管理相关的方面。当一个应用被标记为`persistent`时,这意味着该应用将在系统启动后由...
device-mapper-persistent-data-0.6.2-0.1.rc7.el6.x86_64
资源分类:Python库 所属语言:Python 使用前提:需要解压 资源全名:persistent-4.8.0-cp37-cp37m-win32.whl 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059
persistent, Haskell的持久化接口允许多种存储方法 了解更多: http://yesodweb.com/book/persistent Haskell数据存储数据存储通常被称为"orm"数据存储。 虽然'o'传统上是指对象,但概念可以概括为:avoidance of b