文章目录

  • 1. 微博三方登录流程
    • 1.1 前端获取认证code
    • 1.2 获取微博access_token
    • 1.3 获取微博用户基本信息并保存到数据库
    • 1.4 生成token给Vue
  • 2.第三方登录与本地登录的关联(三种情况)
    • 2.1 情况1:本地未登录,第一次登录第三方
    • 2.2 情况2:本地未登录,再次登陆第三方
    • 2.3 情况3:本地登录,并绑定第三方
  • 3.oauth认证原理
  • 4.为什么使用三方登录

1. 微博三方登录流程


https://api.weibo.com/oauth2/authorize?
client_id=4122644977
&response_type=code
&state=study&
forcelogin=true&
redirect_uri=https%3A%2F%2Fstudy.163.com%2Fsns%2Fweibo%2FoAuthCallback.htm%3Foaut
hType%3Dlogin%26returnUrl%3DaHR0cHM6Ly9zdHVkeS4xNjMuY29tL3Byb3ZpZGVyLzQwMDAwMDAwM
DQ3ODAxMi9pbmRleC5odG0%2FZnJvbT1zdHVkeQ%3D%3D%26nrsstcw%3Dfalse%26nc%3Dtrue###
https://study.163.com/provider/400000000478012/index.htm?from=study

1.1 前端获取认证code

  • 1.在Vue页面加载时 动态发送请求获取微博授权url
  • 2.django收到请求的url后 通过微博 应用ID(chient_id)和调回地址(redirect_uri)动态 生成授权url返回给Vue
  • 3.当用户点击上面的url进行扫码,授权成功会 跳转我们的回调界面并附加code参数
  • 4.Vue获取到微博返回的code后,会 将code发送给django后端 (上面的redirect_uri)

1.2 获取微博access_token

  • 后端获取code后,结合client_id、redirect_uri、client_secret参数进行传递,获取微博access_token

1.3 获取微博用户基本信息并保存到数据库

  • 使用获得的access_token调用获取用户基本信息的接口,获取用户第三方平台的基本信息
  • 用户基本信息 保存到数据库,然后关联本地用户,然后将用户信息返回给前端

1.4 生成token给Vue

  • django后端借助微博认证成功后,可以 使用JWT生成token,返回给Vue
  • Vue将token存储到localStorage中,以便用户访问其他页面进行身份验证

2.第三方登录与本地登录的关联(三种情况)


2.1 情况1:本地未登录,第一次登录第三方

此时相当于注册,直接把第三方信息拉取来并注册成本地用户就可以了,并建立本地用户与第三方用户(openid)的绑定关系

2.2 情况2:本地未登录,再次登陆第三方

此时用户已注册,获取到openid后直接找出对应的本地用户即可

2.3 情况3:本地登录,并绑定第三方

这个只要将获取到的openid绑定到本地用户就可以了

3.oauth认证原理


  • OAuth是以开放标准,允许用户让第三方应用访问该用户在某一网站上存储的私密的资源,而无需将用户名和密码提供给第三方应用。
  • OAuth允许用户提供一个令牌,而不是用户名和密码来访问她们存放在特定服务提供者的数据。
  • 这个code 如果能出三方换取到数据就证明这个用户是三方真受的用户

4.为什么使用三方登录


  • 服务方希望用户注册,而用户懒得填写注册时的各种信息(主要是为了保证用户的唯一性,各种用户名已占用,密码格式限制)
  • 而像微信,QQ,微博等几乎每个人都会安装的应用中用户肯定会在其中某一个应用中已注册过,证明该用户在已经注册的应用中的唯一性
  • 第三方登录的实质就是在授权时获得第三方应用提供的代表了用户在第三方应用中的唯一性的openid 并将openid储存在第三方服务控制的本地储存

微博三方登陆原理讲解相关推荐

  1. 微博三方登录原理讲解

    微博三方登录流程 1.1 前端获取认证code 1.在Vue页面加载时 动态发送请求获取微博授权url 2.django收到请求的url后,通过微博 应用ID(client_id)和回调地址(redi ...

  2. 微博自动关注原理讲解

    此时正在做一个苏州台的项目,其中有一个功能是实现微信微博的自动关注. 微博本身的url访问时https请求,目前大多数代理服务器是http请求方式,也就因此导致配置上代理后,无法打开微博的链接.从而分 ...

  3. Android三方登陆之QQ,微信,微博登录及注意事项

    简介 在我们的应用中,一般都有三方登录这个功能,对于这个常用的功能,我们一般会有如下处理方式 导入三方sdk,按照文档开发 使用如ShareSDK类三方组件来实现 ShareSDK 官方Demo: T ...

  4. ppst——技术视频spring AOP 的原理讲解和简单实现

    ppst 技术视频--spring AOP 的原理讲解和简单实现:请访问ppst 技术视频分享平台 , www.ppst.cc,上面有最新的技术视频,推荐大家把博客录制成视频吧,可以获取收益哦 1.s ...

  5. 实现原理讲解!2020Android目前最稳定和高效的UI适配方案!进阶学习资料!

    前言 组件化是 保持整个 App 可持续地进行高质量开发的基础,近年来也是业界一直在积极探索和实践的方向,在深入理解组件化架构的过程中,将不断考验你的技术深度与广度: 实践中我还参考了十几家技术团队的 ...

  6. php 伪静态 page-18.html,PHP 伪静态实现技术原理讲解

    PHP 伪静态实现技术原理讲解 发布于 2015-01-18 23:52:58 | 129 次阅读 | 评论: 0 | 来源: 网友投递 PHP开源脚本语言PHP(外文名: Hypertext Pre ...

  7. nginx反向代理原理讲解

    一 .概述                  反向代理(Reverse Proxy)方式是指以代理服务器来接受Internet上的连接请求,然后将请求转发给内部网络上的服务器:并将从服务器上得到的结果 ...

  8. 微信小游戏开发教程-2D游戏原理讲解

    微信小游戏开发教程-2D游戏原理讲解 原理 为了更加形象的描述,这里先上一张图: 背景 a. 首先,我们看到背景好像是一张无限长的图片在向下移动.实际则不然,这是一张顶部和底部刚好重叠的图片.这是一种 ...

  9. 解密汽车全景行车安全系统的前世和今生——第二讲:原理讲解

    解密汽车全景行车安全系统的前世和今生--第二讲:原理讲解 来源:深圳市汽车电子行业协会 作者:姜卫忠 发布时间:2013-3-7  浏览(4648)次 解密汽车全景行车安全系统的前世和今生 第二讲:全 ...

  10. UCenter实现同步登陆原理

    UCenter实现同步登陆原理 1.用户登录discuz,通过logging.php文件中的函数uc_user_login对post过来的数据进行验证,也就是对username和password进行验 ...

最新文章

  1. 人工智能军事对抗技术发展趋势
  2. Arduino可穿戴教程保存源文件与打开已经存在的源文件
  3. C++shell sort希尔排序的实现算法之二(附完整源码)
  4. 数据交换平台_从零开始理解大数据架构之数据交换平台
  5. Apollo自动驾驶入门课程第①讲—无人驾驶概览
  6. java怎么碰到异常跳过继续执行_Java异常处理很难吗?BAT大厂的架构师是怎么处理Java异常的?...
  7. windows nginx 停止和启动_大数据离线项目实践之nginx服务器搭建
  8. win7倒计时桌面小工具_这些小工具,彻底解放了我的电脑桌面
  9. 计算机英语讲课笔记01
  10. layer.alert自定义关闭回调事件
  11. [论文阅读] Boosting Salient Object Detection with Transformer-based Asymmetric Bilateral U-Net
  12. android:Read-only file system解决
  13. heic文件怎么打开 怎么将安卓heic格式转化jpg
  14. jquery_Ajax
  15. python快速移动文件内容到另一个文件夹
  16. photoshop ps2022软件下载
  17. 自动驾驶基础——惯性测量单元(IMU)
  18. .博弈论之Best Response
  19. 计算机开机一直无法访问,电脑开机时显示:AutoIt 错误 不能打开脚本文件 如何处理...
  20. 自己动手写ORB特征

热门文章

  1. win10锁定计算机命令,win10怎么锁定磁盘 锁住win10计算机磁盘的操作步骤
  2. scratch图形化编程操作硬件
  3. table表格头部和前几列固定js
  4. 用PS制作GIF动图
  5. 无法安装程序包“xxx”。你正在尝试将此程序包安装到目标为“.NETFramework,Version=v4.5”的项目中
  6. html优秀作品展示,31个漂亮的作品展示网页设计
  7. 总线工作频率和总线时钟频率
  8. 2.1数据库-MySQL
  9. 【Impala】基于Hive的快速大数据查询引擎——Impala知识点总结
  10. 麦克劳林公式怎么记忆_泰勒展开的公式怎么记忆?