提供api,POST方式,根据传递过来的微博uid/appkey,判断该用户的ID是否在自己的数据库中。
如果有,直接登录返回用户登录api的json。
如果没有,就将该用户的ID+token请求微博用户信息api:http://open.weibo.com/wiki/2/users/show,根据返回的用户信息json数据在数据库中创建新用户。再执行登录,返回用户登录的json。
使用微博 php sdk,根据微博返回的token值,获得用户信息。
微博授权返回post参数
{
"uid": 1073880650,
"appkey": 1352222456,
"scope": null,
"create_at": 1352267591,
"expire_in": 157679471,
"token":xxxxx,
"source_add":"ios"
}
微博用户信息api返回实例json
{
"id": 1404376560,
"screen_name": "zaku",
"name": "zaku",
"province": "11",
"city": "5",
"location": "北京 朝阳区",
"description": "人生五十年,乃如梦如幻;有生斯有死,壮士复何憾。",
"url": "http://blog.sina.com.cn/zaku",
"profile_p_w_picpath_url": "http://tp1.sinaimg.cn/1404376560/50/0/1",
"domain": "zaku",
"gender": "m",
"followers_count": 1204,
"friends_count": 447,
"statuses_count": 2908,
"favourites_count": 0,
"created_at": "Fri Aug 28 00:00:00 +0800 2009",
"following": false,
"allow_all_act_msg": false,
"geo_enabled": true,
"verified": false,
"status": {
"created_at": "Tue May 24 18:04:53 +0800 2011",
"id": 11142488790,
"text": "我的相机到了。",
"source": "<a href="http://weibo.com" rel="nofollow">新浪微博</a>",
"favorited": false,
"truncated": false,
"in_reply_to_status_id": "",
"in_reply_to_user_id": "",
"in_reply_to_screen_name": "",
"geo": null,
"mid": "5610221544300749636",
"annotations": [],
"reposts_count": 5,
"comments_count": 8
},
"allow_all_comment": true,
"avatar_large": "http://tp1.sinaimg.cn/1404376560/180/0/1",
"verified_reason": "",
"follow_me": false,
"online_status": 0,
"bi_followers_count": 215
}
http://open.weibo.com/wiki/API%E6%96%87%E6%A1%A3_V2#OAuth2
http://open.weibo.com/wiki/API%E6%96%87%E6%A1%A3_V2#.E7.94.A8.E6.88.B7
http://blog.csdn.net/daleiwang/article/details/34081231
http://wiki.mob.com/%e5%ae%9e%e7%8e%b0%e7%ac%ac%e4%b8%89%e6%96%b9%e7%94%a8%e6%88%b7%e7%99%bb%e5%bd%95/
==========公共登录安全说明=======================
1、登录安全判断,防止恶意猜测用户id登录。
没有uid进行的的登录进行log记录
2、其他登录安全判断,防止恶意猜测用户密码。
密码1小时内连续验证10次失败后,锁定3小时不能登录。用户在4小时内连续有20次错误登录,进行账号冻结24小时。工作日进行登录接口的url访问日志排除,防止固定ip的恶意猜测用户密码行为。产品防止出现全称用户列表,防止被利用猜测用户密码。