Jan 2025【日本東北】溫泉三昧之旅① 在大雪飄落的雪國,追尋秘湯之宿與極上美食(秋田~探訪有日本溫泉界頂點之稱的秘湯乳頭溫泉鶴之湯)

圖片
飛機穿過厚重的雲層,眼前的世界瞬間變成一片白茫茫。大片的雪花,像是鵝毛般漫天飛舞,所有景物都披上了一層潔白的冬衣,只剩下模糊的輪廓,分不清是房屋、樹木還是道路。 下了飛機,一股寒風迎面而來,我不禁打了個寒顫,但也同時被眼前這片銀裝素裹的世界深深吸引。這就是東北的冬天啊!雖然寒冷,但卻充滿了獨特的魅力,如同一個冰雪的童話世界,等待著我們去探索。 我知道,這場大雪只是個開始,接下來幾天的旅程,將會是一場與冰雪共舞之旅。但我已經迫不及待地想要擁抱這片雪國大地,體驗這份獨一無二的冬季風情。 秋田位於日本本州島的北部,瀕臨日本海,冬天受到西伯利亞冷氣團的影響,降雪量非常豐沛。聽說這裡的雪可以堆積到好幾公尺高呢! 秋田的冬天,雖然寒冷,卻充滿了活力和熱情。首先,你可以在森吉山滑雪場滑雪,從雪道上俯衝而下,感受速度與激情!聽說那裡的樹冰也很有名,可惜這次我們沒時間去欣賞。 除了滑雪,秋田還有許多有趣的冬季活動。在橫手市的「橫手雪屋祭」,你可以看到各式各樣的雪屋,晚上點上燈,更是夢幻!聽說在雪屋裡還可以喝甜酒、吃麻糬呢! 當然,來到秋田,也別忘了品嚐當地的冬季美食。熱騰騰的米棒鍋,配上秋田特產的比內地雞和新鮮蔬菜,暖胃又暖心!還有,在寒冬中泡個暖呼呼的溫泉,更是人生一大享受! 剛踏進秋田機場的入境大廳,我就被眼前一個氣勢磅礡的「生剝鬼」給震懾住了!他身披粗獷的稻草蓑衣,手持木棒和裝滿白色紙片的桶子,臉上那副紅色面具更是令人印象深刻:獠牙外露、怒目圓睜,彷彿下一秒就要衝過來似的。 「生剝鬼」(なまはげ)是秋田縣男鹿半島的傳統民俗人物,也是當地家喻戶曉的傳奇角色。據說,生剝鬼是山神的使者,每年除夕夜都會來到村莊,挨家挨戶地驅趕懶惰和邪惡,為人們帶來好運和豐收。他們會大聲吼叫:「有沒有愛哭的小孩?有沒有不聽話的小孩?」,嚇唬孩子們要乖乖聽話,認真學習。 雖然生剝鬼看起來很可怕,但他們其實是善良的,是來保護人們的。生剝鬼的形象也反映了秋田人民勤勞勇敢、不畏艱難的精神。 生剝鬼的故事世代相傳,至今已有數百年的歷史。每年除夕夜,男鹿半島的村民都會舉行「生剝鬼節」,年輕人會裝扮成生剝鬼的樣子,挨家挨戶地拜訪,祈求來年平安順遂。 接著,我們從機場搭乘路線巴士來到了秋田車站,上次來造訪這裡,已是十年前的往事了。一踏進車站,我就被眼前這隻巨大的秋田犬玩偶給吸引住!它憨態可掬地趴在車站大廳中央,吐著粉嫩...

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。隨著用戶和第三方應用越來越多,把用戶名稱和密碼交給第三方應用的方式漸漸變得不安全和麻煩。最後Twitter的開發團隊決定採用OAuth協議對第三方應用進行授權,用戶可以隨時從設置中取消給第三方的授權,就算修改了密碼也不必為修改授權應用的密碼操心。

Google也是OAuth的支持者,下面我們用Google的OAuth流程圖來了解一下OAuth協議的基本流程。


*首先第三方應用會訪問Google OAuth認證服務,來獲取一個Request Token。
*從Google OAuth認證服務傳回一個未授權的Request Token和對應的Request Token Secret。
*應用程式繼續訪問Google OAuth認證服務,要求對未授權的Request Token進行授權。
*如果用戶已經登入Google,將會被重導至一個要求授權的頁面。
*用戶對第三方應用程式進行授權。
*從Google OAuth認證服務傳回已授權的Request Token和對應的Request Token Secret。
*使用已授權的Request Token和對應的Request Token Secret在Google OAuth服務換取Access Token。
*從Google OAuth認證服務傳回Access Token和對應的Access Token Secret。
*使用Access Token和對應的Access Token Secret訪問Google網路服務,如Calendar。
*從Google網路服務傳回使用者的資料,如用戶的Google Calendar資料。


下面是我實作Integrating Twitter OAuth in Rails App的過程:

1.首先要安裝Oauth Gem套件:
$sudo gem i oauth(我使用的版本是0.4.0)

2.到Twitter頁面註冊你的Rails應用程式:
http://twitter.com/oauth_clients
註冊後會得到一個Consumer Key和Consumer Secret值,這是對映到唯一的應用程式


3.現在到#{RAILS_ROOT}/lib目錄下建立一個twitter_oauth.rb檔案,內容如下:

然後編輯lib/login_system.rb(這是我的Rails App用來處理登入驗證機制的地方),我將callback方法放在這裡,並修改其中的一些登入機制:

4.編輯#{RAILS_ROOT}/config/environment.rb,添加下面內容:

5.建立migration新增資料表欄位:
$ruby script/generate migration AddTwitterOauthToUsers

編輯#{RAILS_ROOT}/db/migrate目錄下新增的遷移檔,新增這些欄位到users資料表中:

然後執行 $rake db:migrate 即可。

之後打開phpMyAdmin,給users資料表建立索引,如下圖:


6.編輯#{RAILS_ROOT}/config/routes.rb內容:
之後我們就可以在視圖中使用twitterOAuth_url來將使用者導向Twitter OAuth認證頁面了!

7.編輯users_controller.rb,新增下面的內容:

然後修改users_controller.rb中的create方法:

8.在app/views./users/new.html.erb視圖中添加Twitter OAuth登入驗證按鈕:

#並修改註冊表單的密碼欄位(若透過Twitter OAuth註冊帳號,則不用填寫密碼欄位,但日後可以設定密碼)

9.編輯app/views/users/show.html.erb以及edit.html.erb視圖,添加Twitter Connection按鈕:

然後修改app/views/users/edit.html.erb視圖中的密碼設定欄位:

10.最後修改User Model中的password_required?方法:

OK~到此為止全部搞定啦!


下面是一些OAuth相關的參考資源

Twitter REST API
http://apiwiki.twitter.com/

API Changes
http://apiwiki.twitter.com/API-Overview

OAuth Examples
http://apiwiki.twitter.com/OAuth-Examples

OAuth Gem
http://github.com/pelle/oauth/tree/master

Rails plugin for OAuth
http://github.com/pelle/oauth-plugin/tree/master

OAuth Library
http://code.google.com/p/oauth/

How the RequestToken api works
http://code.google.com/p/oauth-plugin/wiki/RequestToken

How to turn your rails site into an OAuth Provider
http://stakeventures.com/articles/2007/11/26/how-to-turn-your-rails-site-into-an-oauth-provider

Ruby, OAuth & YouTube
http://runerb.com/2010/01/12/ruby-oauth-youtube/

RESTful OAuth認證全過程
http://blog.myspace.cn/e/400934419.htm

OAuth4 (and OAuth4R)投影片
http://www.slideshare.net/choonkeat/oauth4-and-oauth4r

Facebook OAuth on Rails
http://www.wisejive.com/2010/05/facebook-oauth-on-rails.html

熱門文章

[平成26年7月25日~28日]北アルプスの夏 ♪ 厳しく美しい後立山連峰南部3泊4日縦走★白馬八方から針ノ木岳(テント背負)

Mar 2025【新竹五峰】油羅山森呼吸:擁抱原始柳杉林秘境之美(羅山林道第一登山口往返)

Nov 2024【陽明山溫泉】老字號「馬槽花藝村」的溫泉管線已恢復|在木造山景湯屋享受半露天硫磺溫泉

Aug, 2023【桃園大溪】桃園小百岳編號23-溪洲山步道|適合訓練腳力、還能觀賞石門水庫的山水景色

Jan 2025【苗栗泰安】泰安警光山莊泡湯&彰化CP值極高的日本料理|沐藏料理所X海龍王|彰化板前料理 ♨️🍁🥢🍲

Sep 2024【桃園龜山】大棟山405高地散步(視野遼闊可遠眺大台北盆地,還能欣賞百萬夜景的好地方)

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

Feb, 2024【台中西區】桃太郎日本料理|隱身巷弄裡的39年老字號無菜單料理|食材新鮮、自然美味

Mar 2025【桃園復興】高遶溪古圳步道健行(第二期步道已完工,全長2.6公里)|隱藏版道地新疆料理~胡同彭家老舖新疆拉麵

2019, July 7~8【中國山東】老司機帶你攀登72位古代帝王曾登臨朝拜,以五嶽獨尊名揚天下的泰山(歷史典故+遊覽路線+遊記+照片)

文章列表

Contact

名稱

以電子郵件傳送 *

訊息 *