oauth2有四种授权模式,授权码模式是最常用的模式

oauth2其实就是一种通用的协议,如果你的应用想要支持这种协议就需要通过代码来实现它

不过也没有谁会从头开始去实现这个协议,各种编程语言已经有现成的框架已经实现了oauth2协议,直接引入框架就可以开发一个支持oauth2协议的服务器了

首先思考一个问题:oauth2授权码模式是为了解决什么问题?

解决的问题:

  1. 方便用户登录,一个普通用户相比于输入号码和验证码,直接点击微信授权然后登录app,这样使用成本会低很多,降低新用户的使用成本,提升拉新数据
  2. 安全授权,开放一部分的访问权限

大部分第三方登录采用的都是oauth2授权码模式,下面我们以微信第三方登录为例,理解和学习授权码模式

登录流程:
1 用户访问app点击登录界面,点击第三方登录按钮,比如:QQ,微信,微博。引导用户跳转到第三方授权页面,用户进行授权操作,比如:允许访问头像和昵称

3 用户授权之后携带client_id和client_secret向微信授权服务器申请code

4 微信服务器返回code(授权码)

5 app拿到code后访问app后台接口

11 后台携带code访问授权服务器

12 授权服务器返回token,此时后台需要生成自己userid标识用户,方便下次登录

后台需要自己维护用户信息,自己根据jwt原理生成自己系统的token

虽然使用了第三方登录,但这是为了方便用户,开发人员的工作量并没有因此减少,反而增大了

7 后台携带登录时候获得的token访问资源服务器

9 资源服务器不知道这个token是否是有效的,需要访问授权服务器认证token是否有效

10 认证token结果返回

8 如果token是有效的就给后台返回用户的信息

6 后台给app返回结果,包含用户信息,登录成功

2 用户看到头像信息

oauth2授权码模式——微信第三方登录原理相关推荐

  1. Spring Security Oauth2 授权码模式下 自定义登录、授权页面

    主要说明:基于若依springcloud微服务框架的2.1版本 嫌弃缩进不舒服的,直接访问我的博客站点: http://binarydance.top//aticle_view.html?aticle ...

  2. Spring Security OAuth2 授权码模式 (Authorization Code)

    前言 Spring Security OAuth2 授权码模式 (Authorization Code) 应该是授权登录的一个行业标准 整体流程 首先在平台注册获取CLIENT_ID和CLIENT_S ...

  3. java调用授权接口oauth2_微信授权就是这个原理,Spring Cloud OAuth2 授权码模式

    上一篇文章Spring Cloud OAuth2 实现单点登录介绍了使用 password 模式进行身份认证和单点登录.本篇介绍 Spring Cloud OAuth2 的另外一种授权模式-授权码模式 ...

  4. 面试官:能说一说微信授权的原理吗?(Spring Cloud OAuth2 授权码模式)

    我是风筝,公众号「古时的风筝」,一个简单的程序员鼓励师. 文章会收录在 JavaNewBee 中,更有 Java 后端知识图谱,从小白到大牛要走的路都在里面. 上一篇文章Spring Cloud OA ...

  5. java 授权码模式_Spring Security OAuth2 授权码模式的实现

    写在前边 在文章OAuth 2.0 概念及授权流程梳理 中我们谈到OAuth 2.0的概念与流程,这里我准备分别记一记这几种授权模式的demo,一方面为自己的最近的学习做个总结,另一方面做下知识输出, ...

  6. OAuth2授权码模式

    OAuth2协议 为什么要有OAuth2协议? 为了解决第三方服务在无需用户提供账号密码的情况下访问用户的私有资源的一套流程规范. 怎么实现OAuth2协议? 接入OAuth2协议,Authoriza ...

  7. Spring Security(十一):授权认证(OAuth2)-授权码模式(authorization_code)

    一:简介 简单说,OAuth就是一种授权机制.数据的所有者告诉系统,同意授权第三方应用进入系统,获取部分允许获取的数据.系统从而产生一个短期的进入令牌(token),用来代替密码,供第三方应用使用. ...

  8. andpods授权码订单号分享_不要再让你的接口裸奔了,Boot快速尝试OAuth2密码和授权码模式...

    微服务火热,前后端分离,oauth2 是我们接口调用认证的首选.springboot 天然集成 oauth2,使用非常方便,简单记录下,尝尝鲜. 一.啥是OAuth2 OAuth(开放授权)是一个开放 ...

  9. OAuth2.0授权码模式原理与实战

    OAuth2.0是目前比较流行的一种开源授权协议,可以用来授权第三方应用,允许在不将用户名和密码提供给第三方应用的情况下获取一定的用户资源,目前很多网站或APP基于微信或QQ的第三方登录方式都是基于O ...

  10. OAuth2.0协议入门(一):OAuth2.0协议的基本概念以及使用授权码模式(authorization code)实现百度账号登录

    一 OAuth2.0协议的基本概念 (1)OAuth2.0协议 OAuth协议,是一种授权协议,不涉及具体的代码,只是表示一种约定的流程和规范.OAuth协议一般用于用户决定是否把自己在某个服务商上面 ...

最新文章

  1. ICCV2019论文点评:3D Object Detect疏密度点云三维目标检测
  2. gitlab安装配置、备份恢复
  3. leetcode 101 Symmetric Tree
  4. windows在命令行中查看当前路径
  5. 简单易懂的 pwnable.kr 第三题[bof]Writeupt
  6. java关于throw Exception的一个小秘密
  7. php与c有什么区别,.c与.cpp文件的一点区别
  8. android 4.4 屏幕方向,Android4.4屏幕旋转功能
  9. JQuery Datatables editor进行增删改查操作(一)
  10. Codeforces Round #617 (Div. 3) String Coloring(E1.E2)
  11. exists hive中如何使用_07045.16.2如何使用Hive合并小文件
  12. 老弟教你用CSS和JS实现曾经风靡一时的微信打飞机游戏
  13. 登录页面业务逻辑实现
  14. 关于Windows10 VT虚拟化无法开启
  15. 1024 程序员节,带你走进程序员的世界——
  16. xen html插件美化桌面,AliceStyle美化插件(十分强大的插件)
  17. 有参构造器(方法)和无参构造器(方法)的作用(区别)
  18. 如何禁用 Microsoft Edge 自动更新(Windows、macOS)
  19. 蓝桥杯——九宫重排、青蛙跳杯子
  20. 运营商大数据到底有什么意义?

热门文章

  1. aix系统服务器日志外发,AIX系统日志
  2. html 字体样式 幼圆,设置字体样式:字号大小,字体种类,字体粗细
  3. Kafka权威指南 —— 读书笔记
  4. SQL优化工具SQLAdvisor使用(转)
  5. 新版代shua社区源码(云商城1.0)
  6. oracle分析函数大全非常详细
  7. 联想Y9000P安装Ubuntu20.04记录
  8. 使用联想Y460一键拯救系统
  9. 众多优质资源限时看,24小时删!
  10. MAC安装Eclipse