原理
首先,我们的目的是通过第三方账号的授权来实现用户的登录操作,也即用户不用直接创建我们网站或应用的账户,而是直接通过原有的第三方账户来登录,比如微信,qq等。
其原理图如下:

原理简单讲就是先跳转到第三方应用(如qq)的登录界面,然后用户输入账号密码登录成功,并且统一授权,第三方应用的服务器就会返回一个code给我方服务器,我方服务器再带着这个code去第三方应用的服务器去换取一个access_token,获取这个access_token之后我们就能够使用被授权的各种功能,比如查看用户信息这些,具体能够进行哪些操作要去看第三方应用提供的api,然后根据接口调用,调用时都需要带着这个access_token去操作。
而对于我们这里登录来说,我们获取access_token后,就去获取一些信息来创建一个我们网站的新账户,首先我们需要一个它再原第三方应用中就是unique的信息,比如id,然后还可以获取头像这些信息,然后注入到我们网站的给他新创建的哪个账户中,之后用户登录的时候也是先获取第三方应用中的信息,然后看看我们网站的用户数据中有没有哪个账户的第三方应用id字段等于这个用户的第三方应用id,有的话就直接登录,没有的话就要给他创建个账户。
总之,不是不创建账户,只是将其第三方账户关联到我们的用户账号中,自动从其第三方应用的账户中获取创建我们用户账户所需要的字段,然后帮用户省去自己创建账户的繁琐过程。那么这就要求我们从他的第三方账户中获取得到一个能唯一标识其身份的字段,比如前面说的id,这样才能唯一关联我们的用户账户。当然,如果我们无法获取唯一标识字段,只能获取到头像或者性别这样的一些信息,我们可以再第三方授权获得这些信息后再加一个步骤来补充需要的信息,比如授权后还需要其输入手机号码(好像看见很多小程序都这样干),用这个手机号码来唯一标识他。
实现:
参考gitee官方文档:gitee官网文档:

本文详细介绍了通过第三方账号(如Gitee)授权实现用户登录的过程。首先,用户通过第三方应用登录并授权,服务器返回code,然后通过code获取access_token。利用access_token获取用户信息,如ID,用于在自身网站创建新账户或关联已有账户。如果无法获取唯一标识,可能需要额外信息(如手机号)来补充。Gitee的OAuth流程包括创建应用、设置回调地址、用户授权、获取token及用户信息,最后完成登录或账户创建。
最低0.47元/天 解锁文章
2193





