码迷,mamicode.com
首页 > 其他好文 > 详细

Meteor:绑定微博

时间:2015-09-04 12:23:23      阅读:246      评论:0      收藏:0      [点我收藏+]

标签:

微博使用Oauth2.0向第三方授权,具体信息参考oauth2微博官方文档

meteor的用户系统集成了第三方账号绑定功能。实际上,在meteor的用户系统中,用户通过账号关联的service进行认证(登录),service可以是weibo、twitter、google等第三方账户,也可以是password(也即,你可以构建一个不包含password service,纯基于第三方账户的用户体系)。至于你的meteor用户系统要集成哪些服务,可以通过安装accounts-<service>包自行决定。

如果使用accounts-password,你需要先创建用户,再使用username(或email)和password进行登录。但是,如果使用第三方账号,你不必创建账号,便可以直接loginWith<service>,系统会在获取你的授权(并向第三方授权服务器获取access token和相关用户信息)之后,根据第三方id查询是否有绑定的账号,如果有,则登录之,否则,创建并登录。

meteor并没有原生提供将已有账号和第三方账号进行绑定的设施(机制上是可行的)。如上所述,直接使用第三方账号登录,meteor会创建新账号。解决方法自行google,这里介绍我选择的一种方案——使用meteor-link-accounts包。

 

以下为具体操作细节:

meteor安装后就有用户系统。首先,需要支持password。安装accounts-password包即可。

然后,需要支持weibo。安装accounts-weibo包即可。

然后,需要向微博注册开发者账号,并申请应用,申请应用时选择<网页应用>。应用申请成功后,可以获取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来打开应用。

根据meteor文档,使用第三方账号,需要进行适当配置。首先,安装service-configuration包,然后,在server端进行如下配置:

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

现在,你应经可以通过在前端调用Meteor.loginWithWeibo()进行微博登录了!

接下来,要增加将微博绑定到已有账号的能力。首先,安装bozhao:link-accounts包,然后,大功告成!你已经可以在客户端进行登录后调用Meteor.linkWithWeibo()进行微博绑定。绑定成功后,该用户的services属性下会增加weibo一项。具体内容请自行查看数据库。

todo

接下来,需要增加微博解绑功能,我还没有做,但具体思路是这样的。

首先,你可以等待bozhao:link-accounts实现这个功能。

如果急用的话,自行实现也不难。后端需要提供一个method,将登录用户的services的weibo字段删掉即可。你可以在删除前检查一下该账号是否有password service,以防解绑后变成野账号(没有任何引用)。

更进一步,你可以选择在解绑时撤销申请到的weibo access token。调用相关接口即可。

Meteor:绑定微博

标签:

原文地址:http://www.cnblogs.com/zhaoyao91/p/4781444.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!