Tuesday, May 18, 2010

Open ID via RPX

openid-logo-wordmark


這次要介紹的是OpenID的導入,嚴格來說,應該是藉由OpenID導入各大網站的會員。要將一個網站導入OpenID的方式有三個:
一是看著OpenID libraries來做。
二是使用一些開發好的Plugin,不過需要你的站剛好可以用。
三則是藉由RPX這個第三方網站幫你做的介面去做。

我這邊使用的方式是藉由RPX讓自己的網站可以使用各大網站的帳號登入。

方法大致如下,先去 https://rpxnow.com/get 申請帳號,帳號創好登入後,去這邊取得Widget,頁面會像下面這樣。

RPX_01

選擇完Widget顯示方式,填入收token的頁面網址後,按下Generate後就會生出下面兩段code,第一段是載入Widget的JavaScript,第二段則是登入的按鈕,按下後會叫出RPX的OpenID Widget,預設的樣子就像下面這樣。

點我試用OpenID登入


如果設定跟我一樣,按下登入後的樣子會像下面這樣。
RPX_02
預設可以使用Google,Yahoo,OpenID,AOL這四家的帳號登入,如果要加入別家(如Facebook或Windows Live)的話則要另外設定,這之後若有時間再來介紹。


這邊我使用Google Account登入,認證過了之後會把token post回至剛剛填的token接收頁面(token每次都會變),拿到token後,去這邊取得apiKey(這個key除非你重設,不然不會變),然後把apiKey跟token丟到http://rpxnow.com/api/v2/auth_info,像是這樣
https://rpxnow.com/api/v2/auth_info?apiKey=這邊放apiKey&token=這邊放token

丟過去後它會用JSON的格式丟出類似這樣的資料。

{
  'stat': 'ok',
  'profile': {
    'identifier': 'http://user.myopenid.com/',
    'email': '[email protected]',
    'preferredUsername': 'Joe User'
   }
}

我把接token跟取得認證資料兩段做在一起,出來的結果就是下面這樣。
RPX_03

使用上拿identifier這個值當這個帳號的unique key即可,接下來就是看後續要怎麼運用了。

介紹完畢,收工。

2 comments: