第三方登录一个简单的话术

第三方登录

 

我最近做的一个项目,是一个类似于京东的大型网上购物平台,我在这个项目中呢,就曾经负责过一个第三方登录模块的设计与开发,首先呢,如果我们需要在我们自己的平台上集成第三方登录这样一个功能的话,我们就需要去腾讯(QQ,微信)啊,新浪(微博)啊,阿里巴巴(支付宝)啊,等一些大型第三方平台,去申这样一个资质,或者说权限。

为您知道,第三方登录呢,是遵循一个Oauth2.0这样一个国际通用协议的,这个协议规定了,允许各大互联网公司的账号在不泄露密码的前提下在其他网站登录,并获取相关信息。

那么,依据这个协议呢,我们会首先去各大第三方账号网站注册,获取唯一性id和secret安全码,然后在我们网站集成第三方账号登陆图标。当然了,我们在进行注册的时候,也会在第三方平台设置一个回调地址,这个地址呢,是指向我们本地的Controller层的登陆方法的。

当客户在浏览我们网站,选购完商品,需要支付的时候呢,我们会让客户跳转到一个登陆页面,当客户点击第三方登陆按钮,比如,QQ登陆以后,我们就会让客户跳转到QQ的登陆界面,当客户成功登陆以后呢,第三方平台会向我们之前在第三方平台注册时设置好的回调地址发送一个Code随机码,这个随机码呢,是类似于UUID那样的随机数,是用来标识用户的。至此第一次握手完成。

在接到第三方平台传过来的Code以后呢,我们会向第三方平台发送一次请求,这次请求呢,主要是用来获取token,也就是令牌的。因为这次请求是后台的,客户是看不到的,所以呢,我们在这里是利用Httpclient,模拟的Http请求,在向腾讯发送请求时,会 带着我们之前在腾讯注册时所填写的ApiKey,AccessKey,包括他们传过来的Code,来获取token。

方然了,因为Oauth2.0协议的约束,这个token里呢,仅仅包含一些用户的基本信息,就是一些类似于,用户头像啊,姓名啊,性别啊等等,一些最基本的信息,我们在做这块的时候当时也遇到了很多问题很多第三方网站为了保护用户隐私,返回的信息都不是很全面,所以我们需要根据用户的绑定状态去进行下一步的跳转。

那么接下来呢,我们就利用webService,调腾讯的接口,从而通过第三方返回的XML信息,去判断用户是否进行过绑定,根据判定后的绑定信息,来确认,这个账号是否之前在我们网站登陆过。

假设是第一次登录,我们会给第三方网站发送一个绑定账号的请求,将我们网站与第三方账号绑定,之后跳转到用户信息完善页面,让用户输入邮箱和电话号码,从而获取用户更详细的个人资料。然后将第三方账号信息保存到我们网站自己的数据库中。

假设之前已经登陆过,我们会根据第三方账号信息去我们网站自己的数据库中查询出之前添加的信息,并保存到session中,然后跳转到首页,这样就完成了第三方账号在我们网站的登陆。

 

 

 

 

webService

我们所了解的webservice都是基于搜捕协议的,搜捕协议的本质就是http协议加上xml格式的协议体。说白了就是HTTP协议。

那么基于搜捕协议有什么优点呢?

他是面向对象的,它有WSDL,可以基于WSDL生成客户端调用的代码,这样我们就可以直接在客户端进行调用了,中间也不用什么复杂的json转换之类的。我们只需要做到面向对象开发就行了,但是你要知道,使用json字符串的效率是比较高的。Webservice就是系统之间通信的一个手段。

 

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值