OAuth2.o的授权码模式为什么要用code获取token?

news2024/11/13 19:46:09

授权码模式(Authorization Code)是 OAuth 功能最齐全、流程最严谨,也是最常用的授权模式。

假设我们要用微信账号登录网易云音乐,需要以下五步:

  1. 访问网易云音乐客户端,客户端跳转到微信授权页面,询问用户是否同意授权,微信会提供授权的URL。
  2. 用户选择是否同意授权
  3. 假设用户同意授权,微信端将向网易云音乐跳转重定向 URL,同时附上授权码(code)
  4. 网易云音乐收到授权码后,附上重定向 URL,向微信端申请令牌(token)
  5. 微信端传回网易云音乐令牌,由此网易云音乐就可以拿着访问令牌访问微信用户信息

在用户将微信信息授权给网易云音乐登录后,此时后端开始处理,前端不再参与。此时需要微信的服务器将 token 传给网易云音乐的后端,后端携带 token 去访问被授权的微信信息。在授权成功后,需要重定向 URL 通知用户授权成功,也就是说,建立起微信前端和网易云音乐前端的关联。

code 的作用在于让 token 不经过用户的浏览器直接传递,保护了 token 的安全。因为 code 只能用一次,且有时间限制,超时会失效,所以即使被截也未必能用。

其次,要获得 token,除了需要 code,还需要 client id/client secret。所以即使 code 被盗,也是无法获得 token 的。

综上,code 可以保证 token 的安全性,降低被盗取风险。


点击链接,立刻了解 Authing!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/12901.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

神经网络初体验

文章目录前言相关概念BP神经网络具体过程正馈反向传播总结前言 本博客仅做学习笔记,如有侵权,联系后即刻更改 科普: 参考博客:《老饼讲解神经网络》 相关概念 神经网络 模仿人的神经网络构建出来的数学模型 是人工智能的一个主力算法 神经…

STM32 BSRR BRR ODR 寄存器解析(F4系列已经去掉BRR寄存器了)

STM32 BSRR BRR ODR 寄存器解析(F4系列已经去掉BRR寄存器了)一、用法二、解释三、BSRR、BRR、 ODR 之间的关系G0x0系列GPIO寄存器 F4系列GPIO寄存器(没有BRR寄存器了) 一、用法 经常会看到类似如下的宏定义语句,用…

tomcat出现中文乱码原因和解决办法(简单快捷易懂)

一、遇到问题 双击打开tomcat中的bin目录下的startup.bat会出现乱码问题 或者cmd里面打开也是乱码的问题 二、出现这个问题的原因 这是因为windows下的默认编码是GBK编码,tomcat默认编码是UTF-8编码 解决思路:那就把tomacat的默认编码改为和windows下…

HTML5-框架-计算机应用2115-2022年11月17日13:57:13

目录 HTML栅格化布局框架 2、demo演示 栅格化理论: 栅格化系统: 网页栅格化: 重点掌握内容: 练习目标: HTML栅格化布局框架 1、将整个HTML浏览器的宽度设为单位1,那么为了操作栅格化方便,我们拆分…

最简单的java工具(JDK+IDEA)安装教程

一、安装包的准备 安装 java 开发者工具的话,分为 JDK IDEA 的安装,网上有很多版本是需要手动配置环境变量的,对大多数新手朋友来说,并不是很友好,下面我分享一种最快捷的安装方法: JDK 官网下载地址:htt…

服务器——SSL/TLS协议信息泄露漏洞(CVE-2016-2183)修复办法

前言:近期某台Windows Server服务器的远程连接端口(3389)被扫出了SSL/TLS协议信息泄露漏洞(CVE-2016-2183),尝试了网上很多复制来复制去的"解决方法",直接导致堡垒机连不上服务器,每次连不上服务器又得去找服务器提供方,真的非常麻烦,在此不得不吐槽一下某…

anaconda+pytorch安装+pycharm环境配置

首先安装anaconda 网址:Anaconda Installers and Packages 我根据需要选择最新的windows-x86版,其他根据需要选择windows和linux,mac系统版本 安装正常安装,安装路径要记住,没有没配置环境变量要用到,安装后运行如果…

字节三面“凉凉”了,面试题与细节回顾,Java程序员的我太难了

面试字节,目前还记得一些细节,暂时先写一篇面经回顾一下吧~文末会有面试资料分享 字节跳动一面 HashTable、Hashmap. Hashtree的区别线程池相关,线程池的流程,参数线程池alivetime存活时间怎么控制cas讲一下redis讲-下,项目里怎么用redis的分…

Linux实用操作-----软件的安装

教程推荐:Linux零基础快速入门到精通 1、Linux系统的应用商店 操作系统安装软件有许多种方式,一般分为: •下载安装包自行安装 •如win系统使用exe文件、msi文件等 •如mac系统使用dmg文件、pkg文件等 •系统的应用商店内安装 •如win…

图算法介绍

为什么要用图算法 图算法有助于我们理解关联数据。理解网络及其内部联系可以为洞察和创新提供不可思议的潜力。 图算法特别适用于理解结构和揭示高度关联的数据集中模式。目前,大数据汇集、混合和动态更新的需求非常强烈,图算法有助于体现数据的关联性…

树结构的实际应用

堆排序 堆排序的介绍 堆排序利用堆这中数据结构而设计的一种排序算法,堆排序是一种选择排序,它的最坏,最好,平均时间复杂度均为O(nlogn),它是不稳定排序堆是具有以下性质的完全二叉树:每个节点的值都大于或等于其它左右孩子节点的值,称为大顶堆,注意:没有要求节点的左孩子和右…

苹果电脑的文件怎么复制到移动硬盘,macbook文件怎么拷贝到移动硬盘

如果我们使用的是Mac电脑,刚好需要将一些文件从Mac复制到NTFS外置硬盘,那么,苹果电脑的文件怎么复制到移动硬盘? 一、如何将文件从Mac电脑上复制到NTFS外置硬盘? 我可以在Mac上正常使用NTFS外置硬盘吗?很多…

Linux【搭建环境与基本指令】

Linux【搭建环境与基本指令】🍎一.Linux搭建环境🍒1.1什么是Linux🍉1.1.1Linux介绍🍉1.1.2CentOS 和 RedHat 的关系🍉1.1.3在Java中应用到Linux的方面🍒1.2XShell的安装与使用🍉1.2.1XShell的安…

定时器的使用和线程安全

在linux下如果对定时要求不太精确的话,使用alarm()和signal()就行了; 但是如果想要实现精度较高的定时功能的话,就要使用setitimer函数。 核心api: int setitimer(int which, const struct itimerval *value, struct itimerval *…

【李宏毅】机器学习-RNN

RNN(Recurrent Neural Network) 为什么需要RNN呢? 举例来说,有一个任务需要识别每个单词代表的含义。在下面的句子中,taipei分别表示目的地和出发地,我们希望神经网络能够在不同的句子中,识别出不同的语义,…

3、排序(order by)与分页(limit)多表查询 -mysql

3、排序与分页&多表查询 -mysql排序与分页一、排序 Order By二、分页 Limit多表查询一、一个案例引发的多表连接2、笛卡尔积(或交叉连接)的理解二、多表查询分类讲解1、等值连接 vs 非等值连接2、自连接 vs 非自连接3、内连接 vs 外连接三、SQL99语法…

pytorch深度学习实战lesson18

第十八课 卷积层 卷积是深度学习最重要的概念之一,下面来学习和回顾一下卷积的基本概念。 目录 理论部分 从全连接层到卷积层 卷积层 实践部分 理论部分 从全连接层到卷积层 还是从一个例子开始:假设我要对猫和狗进行分类。 假设我用一千二百万像…

3年经验,光靠自动化测试基础,你可能连17k的测试岗都找不到,认清现实.....

相信对于每一个求职者来说都有被面试的经历吧,曾经作为一位测试小白的我,每一次面试过后都会各种吐槽面试官的不是,吐槽HR人事的不足,以及自己的有点没有发挥出来,今天我终于体会了一次面试官的心情.... 起因&#xf…

【夯实Kafka知识体系及基本功】分析一下(Broker)服务的可靠性机制分析「原理篇」

副本机制 分布式系统中,为了提高可靠性,最常用、最有效的策略是“副本机制”,Kafka也不例外。 Kafka 为每个 Partition 维护了一个 AR(Assigned Replicas)列表,由 ISR(In-Sync Replicas&#x…

通过瑞利判据对显微镜物镜进行分辨率研究

摘要 通常可以采用瑞利判据理论表征显微镜的分辨率,瑞利判据是1896年由第三代瑞利男爵约翰威廉斯特拉特(John William Strutt)提出的。该理论认为,当一个艾里图样的中心与另一个艾里图样的第一个最小值重叠时,就可以分辨它们。在这个例子中…