三方登录之微博登录

来啦老弟

开发之前的准备如下:

  1. 注册新浪微博
  2. 访问新浪微博开发平台http://open.weibo.com,如果是企业,申请企业接入,并提交相关资料进行审核;如果是个人开发者,就请申请个人开发者应用。
  1. 进入http://open.weibo.com完善个人信息之后,必须还要做完身份认证审核,审核完成之后,新浪开放平台就会给出appkey和App Secret。
    在开放平台上创建应用,(分移动应用、网站应用、游戏和其他产品)如下图所示:

客户端类型应用申请如下:

申请移动应用填写信息

web类型应用申请如下:
申请web应用填写信息

  1. 填完信息,等待平台审核通过后,拿到appkey和App Secret 还有之前准备的redirect_URI回调地址(即平台的登录页面)之后,即可接入微博登录。
    web端(h5)微博登录
    引导需要授权的用户到如下地址:(请求用户授权Token)

https://api.weibo.com/oauth2/authorize?client_id=YOUR_CLIENT_ID&response_type=code&redirect_uri=YOUR_REGISTERED_REDIRECT_URI

文档请参照:https://open.weibo.com/wiki/Oauth2/authorize
请求方式:GET/POST
YOUR_CLIENT_ID ---->申请应用时分配的AppKey。
YOUR_REGISTERED_REDIRECT_URI---->授权回调地址,站外应用需与设置的回调地址一致,站内应用需填写canvas page的地址。(一般为应用登录页面)
如果用户同意授权,页面跳转至 YOUR_REGISTERED_REDIRECT_URI/?code=CODE:
返回数据

返回值字段 字段类型 字段说明
code string 用于第二步调用oauth2/access_token接口,获取授权后的access token。
state string 如果传递参数,会回传该参数。(防止CSRF攻击用的)
  1. 拿到上一步的code后,用code换取Access Token:
    url

https://api.weibo.com/oauth2/access_token?client_id=YOUR_CLIENT_ID&client_secret=YOUR_CLIENT_SECRET&grant_type=authorization_code&redirect_uri=YOUR_REGISTERED_REDIRECT_URI&code=CODE

文档请参照:https://open.weibo.com/wiki/Oauth2/access_token
请求方式:POST
YOUR_CLIENT_ID ---->申请应用时分配的AppKey。
YOUR_CLIENT_SECRET---->申请应用时分配的AppSecret。
YOUR_REGISTERED_REDIRECT_URI---->授权回调地址,站外应用需与设置的回调地址一致,站内应用需填写canvas page的地址。(一般为应用登录页面)
返回数据

返回值字段 字段类型 字段说明
access_token string 用户授权的唯一票据,用于调用微博的开放接口,同时也是第三方应用验证微博用户登录的唯一票据,第三方应用应该用该票据和自己应用内的用户建立唯一影射关系,来识别登录状态,不能使用本返回值里的UID字段来做登录识别。
expires_in string access_token的生命周期,单位是秒数。
uid string 授权用户的UID,本字段只是为了方便开发者,减少一次user/show接口调用而返回的,第三方应用不能用此字段作为用户登录状态的识别,只有access_token才是用户授权的唯一票据。
  1. 根据用户ID获取用户信息

https://api.weibo.com/2/users/show.json?access_token=token&uid=openId

参考文档:https://open.weibo.com/wiki/2/users/show
请求方式:GET
access_token---->上一步获取的access_token
uid---->上一步获取的UID

  1. 拿到用户信息后就可以将你需要的用户信息注册到你的项目的用户表里,重点保存第5步得到的UID,下次用户再用此账号登录时,到第6步后拿着第5步得到的UID查询数据库里是否存在,存在就不用再次注册到数据库,直接生成token,返回用户数据,登录成功。
    到此,微博登录就结束了。具体文档请参照:

微博api
https://open.weibo.com/wiki/%E5%BE%AE%E5%8D%9AAPI

嘿嘿嘿,划重点了
看到网上有很多关于为什么access_token要设置过期时间的问题,此处以自己的理解解答一哈:
首先我们如果只是做登录,确实不需要access_token,因为已经有openid或者uid跟你的用户对应起来了,但是,这是授权行为,意味着第三方应用可以拿着access_token去取你的数据, 所以这里就需要时效性来保证安全了。(如果有更好的理解欢迎在评论区评论)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 151,511评论 1 330
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 64,495评论 1 273
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 101,595评论 0 225
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 42,558评论 0 190
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 50,715评论 3 270
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 39,672评论 1 192
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,112评论 2 291
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 29,837评论 0 181
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 33,417评论 0 228
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 29,928评论 2 232
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 31,316评论 1 242
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 27,773评论 2 234
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 32,253评论 3 220
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 25,827评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,440评论 0 180
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 34,523评论 2 249
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 34,583评论 2 249