[ 为什么要使用第三方登录]
移动互联网时代,几乎人人手机里面少说有十几个APP,多则四五十个APP,为了避免的APP被攻击后导致的用户数据泄露,通常会将APP分类,常用APP使用密码ABC,重要的APP使用密码XYZ,但是记忆起来很费事。
而产品(APP)接入了第三方登录后,用户跳转到第三方应用,直接在授权页面点击授权即可进入产品,免去了输入密码的环节,让用户登录变得更简单。
[ 第三方登陆的实现原理]
要实现第三方登录的功能首先要明白Oauth2.0国际通用协议,这个协议规定了,允许各大互联网公司的账号在不泄露密码的前提下在其他网站登录,并获取相关信息。依据Oauth2.0协议,我们会首先去各大第三方账号网站注册,获取唯一性id和secret安全码,然后在我们网站集成第三方账号登陆图标。
举个例子
假设你想玩现在很火的一款吃鸡游戏,但是需要使用你的微信账号登录,这时就出现一个授权访问的问题,OAuth2.0协议就是应用于这种场景之下的。
使用第三方应用(吃鸡游戏)登录时,最传统的办法是让用户直接游戏登录页面输账号和密码,但是有的用户觉得注册新账号麻烦(或者APP根本没有提供注册,仅提供关联账号),于是就使用相关的社交账号(微信)通过用户的账号和密码去微信那里获取用户数据,但这样做有很多严重的缺点:
- 吃鸡游戏需要明文保存用户的微信账号和密码,这样很不安全。
- 吃鸡游戏拥有了获取用户在微信所有的权限,包括删除好友、给好友发消息、更改密码、注销账号等危险操作。
- 用户只有修改密码,才能收回赋予吃鸡游戏的权限。但是这样做会使得其他所有获得用户授权的第三方应用程序全部失效。
- 只要有一个第三方应用程序被破解,就会导致用户密码泄漏,以及所有使用微信登录的网站的数据泄漏。
为了解决以上的问题,OAuth 协议应运而生。
微信作为服务提供商,拥有用户的头像、昵称、好友以及所有的朋友圈内容,吃鸡游戏希望获取用户存储在微信的头像和昵称,假设它们是三个人(吃鸡游戏是帮忙取快递的人,微信是快递员):
- 吃鸡游戏和微信说,我想要拿用户X的个人快递
- 微信就说了,你想要获得用户X的快递可以,但是我得先去问问用户X是否同意
- 用户X 对微信说:我给吃鸡游戏我的取货码和手机号(即一个信用凭证),如果他给你出示了这些,你就把我的快递给他
- 吃鸡游戏使用户给它的凭证顺利拿到了用户X的快递。
以上是 OAuth 认证的大概流程。在使用微信授权之前,吃鸡游戏需要先在微信开放平台上注册应用,填写自己的名称、logo、用途等信息,微信开放平台颁发给吃鸡游戏一个应用 ID 和叫 APP Secret 的密钥,在实际对接中,会使用到这两个参数。
[ 基于机智云开源框架的APP第三方登陆 ]
基于Oauth2.0国际通用协议规则,要想实现第三方登录“我们必须先在第三方账号网站注册,获取唯一性id和secret安全码”,也就是我们先要前往微信(QQ、新浪)的开放平台申请一个应用,获取应用的AppID和AppSecret,“然后在我们网站集成第三方账号登陆图标”也就是配置到APP(机智云开源框架)中即可。也就是分两步可完成。
第一步:前往第三方的开放平台创建开发者账号,获取应用的AppID和AppSecret,完成审核。
- 微信开发者平台 open.weixin.qq.com
- QQ开发者平台 connect.qq.com
- 新浪开放平台 open.weibo.com
第二步:将AppID和AppSecret填写到开源框架的配置文件UIConfig.json中,部署完事,即可实现第三方登录了。
举个例子
APP要实现微信登陆,必须前往微信开放平台申请一个应用,获取应用的AppID和AppSecret并且配置到开源框架中即可。
- 前往微信开发平台,获取APPID和APPSecret
- 将在微信开发平台申请到的APPID和APPSecret填写到开源框架的配置文件UIConfig.json中,如下图 确填写“wechat_app_id”和”wechat_app_secret”后部署运行,即可使用微信登录了。
实现第三方QQ登录同理
- 先到腾讯开放平台创建一个应用,获取应用的APPID
- 然后将在腾讯开发平台申请到的APPID填写到开源框架的配置文件UIConfig.json中 确填写“tencent_app_id”后部署运行,即可使用QQ登录了。
还不去机智云自助开发平台 dev.gizwits.com 试试