Oct 21~24, 2023【晚秋の贅沢な山旅 PART①】從名古屋搭車至長野|在北阿爾卑斯山麓的文藝小鎮信濃大町散步、品嚐美味的炸豬排定食和咖啡

圖片
今年10月下旬,趁著深秋季節,請了兩天特休假,飛往日本中部北陸地區,探訪兩處幾年前就想去的地方。其中一處是位於 新潟縣 和 長野縣 交界處的日本百名山【 雨飾山(Mt. Amakazari) 】,10月中下旬的紅葉全盛期,是造訪這座 日本百名山 的最佳時間點,且因爲海拔高度只有兩千公尺左右,相比三千公尺級的 北阿爾卑斯山脈 ,這裡的積雪時間略晚一些。即使到了10月下旬,只要沒有強烈冷氣團,沒有雪季登山裝備也還是能夠登頂。 另一處則是少為人知的 秋季限定路線 ,黑部峽谷【 下ノ廊下 】(下之廊下),這個地方除非是登山客,不然連一般日本人都不太普遍聽過。 下之廊下 位於 黑部大峽谷 的北部地區,因為靠近 日北海 ,冬季這裡是豪雪地帶,只有從每年9月下旬登山道的積雪完全融化後,到11月上旬左右,山區再次降雪之前,大約一個月左右的時間可以通行。 據聞2022年因融雪較慢,能通行的時間只有短短兩週,而今年則是融雪較早,9月中旬就全面開通了。前陣子9月來日本爬山時,原本就有計畫要來這裡,不過後來因為一些原因,就提前返國了。最終等到10月下旬的深秋,也盼到了連續幾日都是好天氣的日子,終於如願前來造訪! 每年10月下旬至11月上旬,是 下ノ廊下 的紅葉最盛期,也是登山客最多、最混雜的時期。其壯闊的峽谷絕景、險峻的斷崖峭壁、遠方覆上初雪的山岳景致、迷人的三段紅葉、還有途中有著被稱為「 秘湯中的秘湯 」的【 阿曾原溫泉 】,加上 一年之中只有極短時間可通行的條件 ,使得黑部峽谷【 下ノ廊下 】成為喜愛山岳之人無不嚮往造訪的山岳秘境。 黑部峽谷自古就是人跡罕至的秘境而廣為人知,江戶時代也因加賀藩的國境警備和森林管理而禁止進入,僅黑部奧山廻御用之役人在此巡邏。明治時代以後對外開放,黑部也成為眾多登山家的目標。其中,冠松次郎因致力探索峽谷而有「黑部之父」的稱號。 黑部峽谷以黑部湖(黑部水壩)為境,可分為 下之廊下 、 上之廊下 ,以及 奧之廊下 。「廊下」是山岳用語,意指「 絕壁之間的深谷 」,而「下之廊下」相當於黑部峽谷的心臟地帶,花崗岩岩壁間的激流從下游起形成白龍峽、十字峽、S字峽等景點。 由於行走於距離河面數十至上百公尺的斷崖峭壁間,許多區間寬度又十分窄小,是有點危險的路線, 每年都有人在這裡不慎摔死 (今年也不例外)。 日本國土地理院地圖(下之廊下) 據說今年秋天日本的下雨天數特別多

Integrating Twitter OAuth in your Rails App

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

熱門文章

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

May 2023【台中南屯】地雷店食記|森鐵板燒|用餐體驗差,價格超貴卻豪無價值。小心別踩雷!!!

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

September, 2012 白姑大山二天一夜~其實沒那麼累,只是路途遙遠

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

Sep, 2023【桃園龍潭】輕鬆登頂石門山欣賞石門水庫湖光山色|景春步道+小竹坑古道O型路線午後健行

Nov 20, 2022【新北烏來】信賢步道健行~輕鬆好走的生態步道,還可順遊內洞森林遊樂區

Feb 2023【台中和平】裡冷林道Off Road單車野營~順登谷關七雄之首八仙山!單車+野營+登山,三個願望一次滿足

May 2023【台中潭子】新田登山步道1+3+5號步道O型環走|噴汗爬1063木棧階梯、順登小百岳聚興山

Mar 12, 2022【重機一日遊】走北橫至宜蘭,經梨山、武嶺下埔里,再走台三線回桃園|16小時的半圈環島

文章列表

Contact

名稱

以電子郵件傳送 *

訊息 *