微博使用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以供客户端调用。