發表文章

目前顯示的是 6月, 2010的文章

Integrating OpenID & Clickpass Authentication in your Rails Application

圖片
OpenID is a service, framework, and protocol that is revolutionizing the realm of user authentication and identity services. Started in 2004 by Brad Fitzpatrick, OpenID is now a mature framework supported by major Internet organizations such as AOL, Google, IBM, Microsoft, VeriSign, and Yahoo. It offers a distributed, reliable, and open way for web sites to authenticate their users and saves web developers from the need to write yet another piece of authentication code. 要在每個使用過的網站建立新的帳號,感到疲累嗎?您總是避免上新網站,是否因為每個網站都要求您建立帳號和密碼? 您是否在電腦螢幕旁貼了一堆密碼提示? OpenID 是一種開放技術標準,可解決所有這類問題。透過 OpenID 技術,您可以使用您的 OpenID 帳號隨意在不同的網站上登入或註冊! 在實作這個功能之前,我們需要安裝ruby-openid這個Ruby Gem以及acts_as_authenticated和restful_authentication這兩個Rails Plugin。 接下來我們要先建立openid的資料表並在現有的Users資料表中添加一個identity_url欄位。建立一個遷移檔來新增資料表,然後編輯這個遷移檔: $ ruby script/generate migration CreateOpenidAuthentication 接下來再來建立一個UserOpenid模型,然後編輯這個新的遷移檔: 然後編輯UserOpenid Model: 接下來編輯#{RAILS_ROOT}/config/routes.rb,設定相關的路徑映射: 註:這裡面的controller必須視你...

Using Yahoo! Browser-Based Authentication with your Rails Application

圖片
Yahoo has released a new product called BBAuth in Sep, 2006, It’s a mechanism for non-Yahoo applications to access Yahoo’s authentication mechanism and user data in a secure manner. BBAuth fixes that problem when it comes to accessing data locked up at Yahoo. Using the tools Yahoo provides, non-Yahoo applications can request a user to sign in to Yahoo and give permission for Yahoo user data to be sent to the non-Yahoo application. 這是二年前做的東西,我們將透過 Yahoo Browser-Based Authentication(Yahoo! BB Auth)這個介面來實作使用 Yahoo! 帳號登入 Rails 應用程式的功能。實作之前需要先安裝 xml-simple 這個 Ruby Gem 套件,以及 Act-as-authenticated 這個 Rails Plugin。 首先建立遷移檔,在 User 模型添加一個一個 yahoo_userhash 欄位: $ ruby script/generate migration AddYahooBBAuthToUsers 實作之前,先來了解一下Yahoo! BB Auth 的基本運作原理: * 當使用者點擊網頁上的 http://你的網址/yahooLogin 連結之後會被重導至 Yahoo!的認證頁面 * 認證成功之後,Yahoo!會傳回一些 information,並導向 http://你的網址/yahooAuth return 回來的其中一個值即是使用者在 Yahoo!與你的 Rails 應用程式聯合產生的 unique id。 若它在我們站上沒有資訊,就準備一個註冊頁面讓使用者填。如果有就用 find_by_yahoo_userhash 找出他...

Using Google Contact API to import Gmail Contacts in Rails App

圖片
The Google Contacts API allows users to retrieve their email contacts from a gmail account without giving a gmail password to the requesting site. This system allows social networking site users to invite friends and find existing users they know without exposing their gmail accounts to malicious site owners or poor security practices. The Contacts API allows developers to create, read, update, and delete contacts using the Google Data protocol, based on AtomPub," the announcement says. "It also allows for incremental sync by supporting the 'updated-min' and 'showdeleted' parameters. 邀請朋友是現今的社群網站必備的功能,許多社群網站都允許讓用戶透過GMail,Hotmail,Yahoo! Mail等郵件服務匯入自己的聯絡人列表來邀請朋友。早期在ASP.Net,JAVA,PHP這些程式語言的典型作法是透過一些Library來實作匯入聯絡人清單,而在Ruby on Rails則有Contacts Gem這類的套件可以使用;但缺點是用戶必須在第三方網站所提供的表單上鍵入自己的GMail帳號密碼,如此一來安全性問題就產生了,儘管提供此類功能的網站都會在旁邊註明不會儲存用戶的帳號密碼,但是你真的信的過這些網站嗎?所幸Google Contacts API的推出解決了這個問題,下面我們將實作透過Google的Authsub驗證方式在Rails網站上從Google Contact API匯入聯絡人列表的功能。 下圖是Twitter匯入G...

十二條規則

圖片
1、近因效應:最近或最後的印象對人的認知有强烈的影響,其結果往往會被視為過程的總結。 2、美即好效應:對一個外表英俊漂亮的人,人們很容易認為他或她的其他方面也很不錯。印象一旦以情緒為基礎,就經常會偏離事實。 3、盧維斯定理:謙虛不是把自己想得很糟,而是完全不想自己;如果把自己想得太好,就很容易將别人想得很糟。 4、托利得定理:測驗一個人的智力是否属於上乘,只看腦子裡能否同时容納兩種相反的思想,而無礙於其處世行事。 5、刺蝟理論:刺猬會在寒冷時彼此靠攏取暖,但必須保持一定距離以免互相刺傷。保持親密的重要方法,乃是保持適當的距離。 6、斯坦纳定理:在哪裡說得愈少,在哪裡聽到的就愈多。只有很好地聽取他人的,才能更好說出自己的。 7、氨基酸組合效應:組成人體蛋白的八種氨基酸,只要有一種含量不足,其他七種就無法合成蛋白質。當缺“一”不可時,“一”就是一切。 8、米格—25效應:前蘇聯研制的米格—25噴氣式戰鬥機的許多零部件與美國的相比都落後,但因設計者考慮了整體性能,故能在升降、速度、應急反應等方面成為當時的世界一流。所謂最佳整體,乃是個體的最佳组合,1+1>2。 9、磨合效應:新組裝的機器,透過一定時期的使用,把摩擦面上的加工痕跡磨光而變得更加密合,要想達到完整的契合,需要雙方做出必要的割捨。 10、權威暗示效應:一化學家稱,他將測驗一瓶臭氣的傳播速度,他打開瓶蓋15秒後,前排學生即舉手,稱自己聞到臭氣。而後排的人則陸續舉手,紛紛稱自己也已聞到,其實瓶中什麼也没有。迷信則輕信,盲目必盲從。 11、定位效應:社會心理學家曾做過一個試驗——在召集會議是先讓人們自由選擇位子,之後到室外休息片刻再進入室内入座,如此五至六次,發現大多數人都選擇他們第一次坐過的位子。凡是自己認定的,人們大都不想輕易改變它。 12、犬獒效應:當年幼的藏犬長出牙齒並能撕咬時,主人就把他們放到一個没有食物和水的封閉環境中,讓这些幼犬互相撕咬,最後剩下一隻活的犬,這隻犬稱為獒。據說十隻犬才能產生一只獒。困境是造就強者的學校。

Using Google OAuth with Youtube in your Rails Sites

圖片
OAuth allows the user to securely share data from provider sites (in this case google) to consumer sites (in this case your ruby on rails site). You can use OAuth to authenticate users or consume API’s on their behalf. Here we will have a look at both. 下面是實作Google OAuth驗證透過Youtube帳號登入Rails Website之過程,整個實作過程是建立在一個現有的Rails Project上(基本條件是必須包含現有的user record和登入/登出系統以及帳號管理機制)。ps. 如果你需要一個現成的Ruby on Rails使用者登入/註冊機制,我認為Authlogic是一個不錯的選擇。 About Authlogic: http://www.binarylogic.com/category/my-projects/authlogic/ Authlogic Gem download: http://github.com/binarylogic/authlogic/ Authlogic Example Project on Github: http://github.com/binarylogic/authlogic_example/ 在實作之前,首先我們需要到Google註冊頁面添加你的網域並驗證: https://www.google.com/accounts/ManageDomains 我們可以使用RSA key來作為signature method,在*NIX或OS X平台上我們可以用openssl來產生RSA Keys(將www.example.com改成你的域名): $ openssl req -x509 -nodes -days 365 -newkey rsa:1024 -sha1 -subj '/C=US/ST=CA/L=San Francisco/CN=www.example.com' -keyout rsakey.pem -out rs...

Integrating Facebook Connect with your Rails Applications

圖片
Facebook Connect is a set of APIs from Facebook that enable Facebook members to log onto third-party websites, applications, mobile devices and gaming systems with their Facebook identity. While logged in, users can connect with friends via these mediums and post information and updates to their Facebook profile. Developers can use these services to help their users connect and share with their Facebook friends on and off of Facebook and increase engagement for their website or application. Originally unveiled during Facebook’s developer conference, F8, in July 2008, Facebook Connect became generally available in December 2008. According to an article from The New York Times, "Some say the services are representative of surprising new thinking in Silicon Valley. Instead of trying to hoard information about their users, the Internet companies (including Facebook, Google, MySpace and Twitter) all share at least some of that data so people do not have to enter the same identifying ...

Integrating Twitter OAuth to your Rails Application

圖片
Twitter OAuth 是做什麼用的?最簡單來說就是讓使用者可以用他們在 Twitter.com 上面的帳號來註冊/登入你的網站,而藉由Twitter REST API,第三方網站也可以取得使用者在twitter網站上的Following,Follower,Direct Messages等訊息。它的概念是這樣子的: Have you ever built an application that needed access to user data from a third-party application like Google Apps, Twitter, Facebook, …? The easiest way would be to get the Google login and password of your users via a login form on your application. You would then be able to use these credentials to connect to the third-party application and get access to your users data. The OAuth protocol consists of a sequence of interactions between your application, Google services and the end user. (以上摘自: http://code.google.com/intl/zh-TW/apis/accounts/docs/OAuth.html ) OAuth協議是現在許多大型網站提供API服務所選擇的認證方式,其目的是為API服務提供一個安全、統一和開放的標準。許多知名的大型網路服務都選擇了OAuth協議,如:Facebook、Twitter、Google和MySpace等;或是採用類似的認證方式。 OAuth網站: http://oauth.net/ Twitter的API在初期使用了Basic Auth認證方式,第三方應用只要把用戶名稱和密碼進行BASE64加密,加入到HTTP的Header中就可以使用訪問受限資源的API。隨著用戶和第三方應用越來越...

Oct, 2009 花蓮行 Day2 - 七星潭&曼波園區&清水斷崖&鯉魚潭&慕谷慕魚&海洋公園&磯崎海水浴場

圖片
花蓮行的第二天,和和冠迪哥一大早五點半就起床出門了,途中到7-11買了早餐和咖啡享用,然後準備到花蓮的七星潭去觀賞日出! 中途經過花蓮漁港附近的南濱公園 已經有早起的阿伯在這邊做運動了 到此一遊! 然後來到了花蓮的七星潭 日出,海灘,背影 花蓮七星潭的美麗日出! 在東華大學唸研究所的冠迪哥是五專時期的老同學! 檢視較大的地圖 在這邊尋找前往清水斷崖的方向,打算到清水斷崖去看一下! 這裡是位於七星潭附近的曼波園區步道 離開七星潭之後,一路沿著蘇花公路經過崇德隧道,往清水斷崖的方向前進! 過了隧道沒多就可以看到右方有一個大型的光導覽圖,這裡開始就是清水斷崖的起點了!我們還在這邊遇到一群搭乘遊覽車來觀光的內地觀光客。 檢視較大的地圖 冠迪哥到此一遊! 離開清水斷崖之後往回走,繼續開往中橫公路的方向,經過溪畔壩 然後又回到了花蓮,之後來到了花蓮的鯉魚潭,此時已接近中午! 在這邊看見一群大叔大嬸悠閒的在湖邊跳著舞 花蓮的鯉魚潭 冠迪哥到此一遊! 因為在這邊晃來晃去太無聊,所以決定跑去乘坐天鵝船(2個人搭乘一次300元,不限使用時間) 玩完這個天鵝船之後我們就離開鯉魚潭了! 離開鯉魚潭之後,接著來到了鯉魚潭附近的慕谷慕魚,中途會經過一個很大的吊橋,對面是台電的發電設施,一般民眾無法進入!(由於慕谷慕魚是受保護的區域,有遊客數量管制,因此要去必須先去附近的派出所申請入山證才能進去) 然後經過檢查哨之後沒多久會看到一個紅色的大橋,這是從橋上往下拍的! 往慕谷慕魚的山路,路面寬度大約只能容的下一輛車通過。之後我們往山上開了大約30分鐘,遇到從上面下來的台電人員,告知再過去的路車子已經沒辦法開,因此沒辦法只好回頭下山(後來回家又看了一次地圖,原來是開過頭了) 下山之後之後回到花蓮市區已經下午一點多了,於是就在中正路上找到一家叫做『吉野』的日本料理店用餐,這裡的東西還不錯,離開時吃得很撐! 吃完午餐已經是下午二點左右,於是繼續前往遠雄海洋公園,本來是打算要進去玩的,但是到了這邊時已經是下午三點了...

文章列表

Contact

名稱

以電子郵件傳送 *

訊息 *