基于vue实现微博三方登录流程解析


Posted in Javascript onNovember 04, 2020

1.微博三方登录流程

基于vue实现微博三方登录流程解析

1.1 前端获取认证code

1.在Vue页面加载时 动态发送请求获取微博授权url

2.django收到请求的url后,通过微博 应用ID(client_id)和回调地址(redirect_uri) 动态 生成授权url返回给Vue

3.当用户点击上面的url进行扫码,授权成功会 跳转我们的回调界面并附加code参数

4.Vue获取到微博返回的code后,会 将code发送给django后端 (上面的redirect_uri)

1.2 获取微博access_token

后端获取code后,结合client_id、client_secret、redirect_uri参数进行传递,获取微博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储存在第三方服务控制的本地储存.

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
js验证表单大全
Nov 25 Javascript
js实现兼容IE6与IE7的DIV高度
May 13 Javascript
web网页按比例显示图片实现原理及js代码
Aug 09 Javascript
js函数内变量的作用域分析
Jan 12 Javascript
jquery实现图片水平滚动效果代码分享
Aug 26 Javascript
jQuery在线选座位插件seat-charts特效代码分享
Aug 27 Javascript
利用vue-router实现二级菜单内容转换
Nov 30 Javascript
ES6中箭头函数的定义与调用方式详解
Jun 02 Javascript
vue实现点击图片放大效果
Aug 15 Javascript
详解Vue.js使用Swiper.js在iOS
Sep 10 Javascript
javascript操作向表格中动态加载数据
Aug 27 Javascript
webstorm建立vue-cli脚手架的傻瓜式教程
Sep 22 Javascript
Javascript执行上下文顺序的深入讲解
Nov 04 #Javascript
解决vant中 tab栏遇到的坑 van-tabs
Nov 04 #Javascript
解决Mint-ui 框架Popup和Datetime Picker组件滚动穿透的问题
Nov 04 #Javascript
基于js实现的图片拖拽排序源码实例
Nov 04 #Javascript
在vant中使用时间选择器和popup弹出层的操作
Nov 04 #Javascript
vue 判断两个时间插件结束时间必选大于开始时间的代码
Nov 04 #Javascript
vant 时间选择器--开始时间和结束时间实例
Nov 04 #Javascript
You might like
php cookie 登录验证示例代码
2009/03/16 PHP
用PHP写的一个冒泡排序法的函数简单实例
2016/05/26 PHP
Laravel 5.1 on SAE环境开发教程【附项目demo源码】
2016/10/09 PHP
Laravel5中防止XSS跨站攻击的方法
2016/10/10 PHP
Nigma vs Liquid BO3 第一场2.13
2021/03/10 DOTA
addRule在firefox下的兼容写法
2006/11/30 Javascript
利用jquery操作select下拉列表框的代码
2010/06/04 Javascript
javascript写的日历类(基于pj)
2010/12/28 Javascript
给超链接添加特效鼠标移动展示提示信息且随鼠标移动
2013/10/17 Javascript
js实现表格字段排序
2014/02/19 Javascript
Node调试工具JSHint的安装及配置教程
2014/05/27 Javascript
js使用递归解析xml
2014/12/12 Javascript
七夕情人节丘比特射箭小游戏
2015/08/20 Javascript
JS实现不规则TAB选项卡效果代码
2015/09/16 Javascript
小程序接入腾讯位置服务的详细流程
2020/03/03 Javascript
python异常和文件处理机制详解
2016/07/19 Python
python实现串口自动触发工作的示例
2019/07/02 Python
python聚类算法解决方案(rest接口/mpp数据库/json数据/下载图片及数据)
2019/08/28 Python
python多环境切换及pyenv使用过程详解
2019/09/27 Python
python3.6.5基于kerberos认证的hive和hdfs连接调用方式
2020/06/06 Python
Python celery原理及运行流程解析
2020/06/13 Python
HTML5 Canvas中绘制椭圆的4种方法
2015/04/24 HTML / CSS
Farfetch中文官网:奢侈品牌时尚购物平台
2020/03/15 全球购物
说出一些常用的类,包,接口
2014/09/22 面试题
J2EE是技术还是平台还是框架
2016/08/14 面试题
小学生学习感言
2014/03/10 职场文书
给学校的建议书
2014/03/12 职场文书
秸秆管理实施方案
2014/03/15 职场文书
银行内勤岗位职责
2014/04/09 职场文书
责任担保书范文
2014/05/21 职场文书
初中家长评语和期望
2014/12/26 职场文书
2015年设计师个人工作总结
2015/04/25 职场文书
2015年乡镇卫生院妇幼保健工作总结
2015/05/19 职场文书
交通处罚决定书
2015/06/24 职场文书
对讲机知识
2022/04/07 无线电
oracle delete误删除表数据后如何恢复
2022/06/28 Oracle