怎么去实现一个第三方登录功能

这里不会描述太详细的开发流程和步骤,仅做心得分享和体会。

  1. 首先要了解下第三方登录的一个大致流程,这里举个例子,假设我们开发的网站要通过码云登录,网站表面体验的交互流程应该是点击码云登录->跳转到码云的授权登录页->授权成功后跳转回网站首页,这样就实现了第三方登录。如果从开发设计角度来讲,实际流程应该涉及到4个角色,一个是用户,一个是客户端也就是我们的网站,一个是码云认证服务器,一个是码云授权服务器,中间涉及到oauth2协议,用户选择码云登录,我们的网站返回码云的授权登录页,用户输入用户名和密码,认证服务器认证成功,返回给客户端一个code码,之后客户端通过这个code获取访问令牌access_token,接着带着访问令牌去访问授权服务器,就可以获取到第三方用户的一些基本信息了。如果从代码的角度来说,就更简单了,前端点击选择码云登录,后端返回码云的授权页面,然后用户授权成功后,码云回调网站的接口地址,只要能进回调方法,想实现什么逻辑,就完全由开发来决定了。
  2. 简单的了解流程后,可以直接找开源框架了,看看有没啥活跃度高的第三方登录开源框架,我这里引入了JustAuth,码云地址如下:https://gitee.com/yadong.zhang/JustAuth。文档地址如下:https://justauth.wiki/
  3. 先看文档,熟悉下这个框架的基本功能,然后看看一些集成第三方的代码案例,第三方登录功能代码该怎么写其实就大概会有个思想了。
  4. 这时候先不要急着写,再去找找有没有已经集成了JustAuth的开源项目或者demo,如果有,可以做借鉴,没有的话,再自己写,推荐参考demo:JustAuth-demo
  5. 感觉到了这步骤,复制黏贴就搞定了,真正需要开发者做的只有申请第三方平台的开发者资质拿到一些必要属性和新建社交用户表以及完善回调方法里的逻辑了,回调的话,我这里的逻辑一般都是重定向到某个页面,比如首页。