Meteor:綁定微博

微博使用Oauth2.0向第三方受權,具體信息參考oauth2微博官方文檔前端

meteor的用戶系統集成了第三方帳號綁定功能。實際上,在meteor的用戶系統中,用戶經過帳號關聯的service進行認證(登陸),service能夠是weibo、twitter、google等第三方帳戶,也能夠是password(也即,你能夠構建一個不包含password service,純基於第三方帳戶的用戶體系)。至於你的meteor用戶系統要集成哪些服務,能夠經過安裝accounts-<service>包自行決定。git

若是使用accounts-password,你須要先建立用戶,再使用username(或email)和password進行登陸。可是,若是使用第三方帳號,你沒必要建立帳號,即可以直接loginWith<service>,系統會在獲取你的受權(並向第三方受權服務器獲取access token和相關用戶信息)以後,根據第三方id查詢是否有綁定的帳號,若是有,則登陸之,不然,建立並登陸。github

meteor並無原生提供將已有帳號和第三方帳號進行綁定的設施(機制上是可行的)。如上所述,直接使用第三方帳號登陸,meteor會建立新帳號。解決方法自行google,這裏介紹我選擇的一種方案——使用meteor-link-accounts包。服務器

 

如下爲具體操做細節:app

meteor安裝後就有用戶系統。首先,須要支持password。安裝accounts-password包便可。google

而後,須要支持weibo。安裝accounts-weibo包便可。url

而後,須要向微博註冊開發者帳號,並申請應用,申請應用時選擇<網頁應用>。應用申請成功後,能夠獲取key和secret,並能設置redirect_url(受權回調頁)。這裏特別注意,開發階段,建議將redirect_url設置爲http://127.0.0.1:3000/_oauth/weibo,並在本機使用127.0.0.1:3000來打開應用。其中,host字段能夠自行設置,可是本機必須進行適當配置,使得該host映射到本機ip,而且meteor應用使用該host做爲base url,而且本機使用該host來打開應用。
.net

根據meteor文檔,使用第三方帳號,須要進行適當配置。首先,安裝service-configuration包,而後,在server端進行以下配置:server

ServiceConfiguration.configurations.upsert(
{ service: "weibo" },
{
$set: {
clientId: <你的應用id>,
secret: <你的應用secret>,
loginStyle: "popup"
}
}
);

如今,你應經能夠經過在前端調用Meteor.loginWithWeibo()進行微博登陸了!token

接下來,要增長將微博綁定到已有帳號的能力。首先,安裝bozhao:link-accounts包,而後,大功告成!你已經能夠在客戶端進行登陸後調用Meteor.linkWithWeibo()進行微博綁定。綁定成功後,該用戶的services屬性下會增長weibo一項,具體內容包含:id,accessToken,screenName,expiresAt。

接下來,須要增長微博解綁功能,服務端調用Accounts.unlinkService(userId, serviceName)便可,固然,須要包裝成一個method以供客戶端調用。

相關文章
相關標籤/搜索