【台灣百岳】帶山友爬百岳的一些照片~玉山、雪山、嘉明湖、奇萊連峰、南湖大山、武陵四秀、合歡群峰

圖片
彙整紀錄一下過去帶團的一些記錄。 ▼▼▼2020年玉山主峰_研究所同學團▼▼▼ ▼▼▼2020年玉山主峰台灣團▼▼▼ ▼▼▼2020年玉山主峰台灣團▼▼▼ ▼▼▼2020年玉山主峰台灣團▼▼ ▼▼▼2020年玉山主峰台灣團▼▼▼ ▼▼▼2019年玉山主峰台灣團▼▼▼ ▼▼▼2019年玉山主峰台灣團▼▼▼ ▼▼▼2019年玉山主峰台灣團▼▼▼ ▼▼▼2019年玉山主峰台灣團▼▼▼ ▼▼▼2019年玉山主峰香港團▼▼▼ ▼▼▼2019年玉山主峰台灣團▼▼▼ ▼▼▼2019年雪山主峰澳門團▼▼▼ ▼▼▼2019年玉山香港團▼▼▼ ▼▼▼2019年玉山香港團▼▼▼ ▼▼▼2019年玉山香港團▼▼▼ ▼▼▼ 嘉明湖團(含登頂三叉山、向陽山) ▼▼▼

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 找出他是誰,確定身份後再改 seseeion 讓他能夠被辨識出來。



接下來請到下面網址註冊你的 Rails Application 並取得 Yahoo BB Auth 的 AppID:
http://developer.yahoo.com/auth/appreg.html

這裡輸入的 Web Application URL 和 BBAuth Success URL 網址必須和你的route.rb裡面的控制器設定符合,這裡我在 Web Application URL 輸入http://你的網址/yahooLogin,以及在 BBAuth Success URL 輸入 http://你的網址/yahooAuth,申請並認證之後會得到一個 AppID 和 Secret Key。再來就是在 #{RAILS_ROOT}/lib 目錄下建立一個 yahoo_bb_auth.rb 檔案,然後把這兩個 key 套用在檔案中:

接下來編輯 #{RAILS_ROOT}/config/routes.rb 檔案,設定 yahooLogin 和 yahooAuth 對應的 Controller 和方法:

然後編輯UsersController的Create方法,添加下面的內容:

然後在UsersController中新增 yahooLogin 和 yahooAuth 這兩個方法:

接下來編輯 app/views/users/new.html.erb 裡面的密碼輸入區塊,如果使用者透過Yahoo!帳號認證成功並返回註冊頁面,則不需要填寫密碼欄位:

再來編輯 app/views/users/edit.html.erb 這個帳號設定的視圖,這裡設定當使用者要修改密碼時,只有當使用者的 hashed_password 欄位為空(沒有密碼)以及 yahoo_userauth 欄位有值(已認證過 Yahoo!帳號)的情況下,才不需要填寫當前密碼的欄位(current_password),因為使用者目前並沒有設定密碼。

同樣的我們必須修改UsersController的update方法,來增加一些判斷邏輯:

OK!完成了,現在當使用者按下"從Yahoo帳號登入"的連結後,將會被導向Yahoo!的認證頁面,認證成功之後再將使用者帶回我們的網站,如果在資料庫中找到對映的yahoo_userhash資料,則將使用者登入,否則就將使用者導向註冊頁面。

Yahoo 帳號認證頁面
應用程式授權頁面

現在啟動你的Mongrel Cluster進行測試吧!enjoy~

熱門文章

[轉載] 洛克菲勒寫給兒子的38封信(全文)

Jan 2023【台中和平】幽靜舒適的大雪山200林道健行~順登北三錐山(標高2,689m)

Jan, 2023【台中和平】谷關七雄第六位|可眺望谷關群山的白毛山登山步道健行(標高1,522公尺)

Jun 24~25, 2022【南橫三星】庫哈諾辛山+【南臺首嶽】關山(進涇橋登山口)|2天1夜野營登山

Jan, 2023【台中后里】鳳凰山步道接觀音山O型路線|適合親子健行的竹林步道,登頂展望佳景觀優美

Sep, 2021【苗栗南庄】蓬萊林道Off Road小試|雨後很爛很濕滑|二傳低底盤車勿輕易嘗試

Aug 21, 2022【新北烏來】紅河谷越嶺古道前段健行。平緩好走的林蔭休閒步道

【美國加州】加州一號公路自駕遊~Half Moon Bay、17 Mile Drive、Bixby Greek Bridge、Big Sur、McWay Falls、Elephant Seal Rookery

Jan, 2023【台中和平】谷關七雄第七位|陡上不輸波津加山,還可順遊瀑布的唐麻丹山步道健行(裡冷登山口來回)

Oct, 2021【桃園復興】雪霧鬧部落的中級山~復興三尖之夫婦山健行

文章列表

聯絡我

名稱

以電子郵件傳送 *

訊息 *