单点登录-第三方对接OAuth2.0-正在书写中ing

大家好,你是不是经常遇到这样的烦恼:每次想登录一个新的网站或者应用,都要重新输入用户名和密码,有时候还得设置各种密保问题,简直烦死个人了!
其实啊,有一个叫做“单点登录”的东西,就像是给你准备了一把“万能钥匙”,只要有了它,你就可以轻松打开多个应用的大门,再也不用为登录发愁了。而在这个“万能钥匙”里,有一个非常流行的“零件”叫做OAuth2.0,它能让第三方应用轻松对接到你的账户,让你在享受各种服务的同时,还能保证账号的安全。

在这篇文章里,我会用最简单的话,给大家讲讲单点登录和OAuth2.0是怎么一回事,怎么用它来对接第三方应用,让我们的在线生活更加便捷和安全。哪怕你是个技术小白,也能看得懂、学得会!大家一起来学习进步(作者也是小白>.<)

所以,如果你也对这个神奇的“万能钥匙”感兴趣,就跟我一起探索吧!相信我,学完之后,你会觉得登录这事儿,简直变得轻松又有趣啦!如果本文有什么还不太了解的或者聪明的大家有什么需要补充的也可以在评论区留言

单点登录

对接第三方

什么是OAuth协议

OAuth协议为用户资源的授权提供了一个安全又简易的标准。与以往的授权方式不同之处是
OAuth的授权不会使第三方触及到用户的帐号信息(如用户名与密码),即第三方无需使用用户的用户名与密码就可以申请获得该用户资源的授权,因此
OAuth是安全的。 OAuth是 Open Authorization的简写
OAuth本身不存在一个标准的实现,后端开发者自己根据实际的需求和标准的规定实现。

其步骤一般如下

  1. 第三方(客户端)要求用户给予授权
  2. 用户同意授权
  3. 根据上一步获得的授权,第三方向认证服务器请求令牌( token)
  4. 认证服务器对授权进行认证,确认无误后发放令牌
  5. 第方使用令牌向资源服务器请求资源
  6. 资源服务器使用令牌向认证服务器确认令牌的正确性,确认无误后提供资源

OAuth2.0是为了解决什么问题?

任何身份认证,本质上都是基于对请求方的不信任所产生的。同时,请求方是信任被请求方的,例如用户请求服务时,会信任服务方。所以,
身份认证就是为了解决 身份的可信任问题。

在 OAuth2.0中,简单来说有三方:

  1. 用户(这里是指属于 服务方的用户)
  2. 服务方(如微信、微博等)
  3. 第三方应用(也就是所谓的客户端)

服务方不信任 用户,所以需要用户提供密码或其他可信凭据(用户需要用户密码登录) 服务方不信任
第三方应用,所以需要第三方提供自已交给它的凭据(如微信授权的 code,AppID等) 用户部分信任
第三方应用,所以用户愿意把自已在服务方里的某些服务交给第三方使用,但不愿意把自已在服务方的密码等交给第三方应用

OAuth2.0成员和授权基本流程
OAuth2.0成员:

  1. Resource Owner(资源拥有者:用户)
  2. Client (第三方接入平台:请求者)
  3. Resource Server (服务器资源:数据中心)
  4. Authorization Server (认证服务器)

OAuth2.0基本流程(步骤详解):

  1. Authorization Request, 第三方请求用户授权
  2. Authorization Grant,用户同意授权后,会从服务方获取一次性用户 授权凭据(如 code码)给第三方Authorization Grant
  3. 第三方会把 授权凭据以及服务方给它的的 身份凭据(如 AppId)一起交给服务方的向认证服务器申请 访问令牌Access Token,认证服务器核对授权凭据等信息,确认无误后,向第三方发送 访问令牌 Access Token等信息Access Token
  4. 通过这个 Access Token向 Resource Server索要数据Protected Resource
  5. 资源服务器使用令牌向认证服务器确认令牌的正确性,确认无误后提供资源

这样服务方,一可以确定第三方得到了用户对此次服务的授权(根据用户授权凭据),二可以确定第三方的身份是可以信任的(根据身份凭据),所以,最终的结果就是,第三方顺利地从服务方获取到了此次所请求的服务从上面的流程中可以看出, OAuth2.0完整地解决了 用户、 服务方、 第方在某次服务时这者之间的信任问题

SpringBoot整合OAuth2.0

略(开发中ing...写完以后会在这里粘贴进来的)

整合钉钉扫码登录

整合微信扫码登录

整合企业微信扫码登录

整合飞书扫码登录

整合QQ扫码登录

整合支付宝扫码登录

整合Gitee扫码登录

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

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

相关文章

[Java EE] 多线程(四):线程安全问题(下)

1.5 volatile关键字 我们在了解这个关键字之前,我们首先要把产生线程安全的第4个原因补齐,我们来说说由于内存可见性引起的线程安全问题. 我们来看下面这样一段代码: import java.util.Scanner;public class Demo16 {public static int count 0;public static void main(Str…

深度学习算法简介(一)

目录 ⛳️推荐 前言 1、深度神经网络&#xff08;DNN&#xff09; 2、卷积神经网络&#xff08;CNN&#xff09; 3、残差网络&#xff08;ResNet&#xff09; 4、LSTM&#xff08;长短时记忆网络&#xff09; 5、Word2Vec 6、Transformer 7、生成对抗网络&#xff08;…

kmeans实现图像像素分类

代码 import tkinter as tkfrom tkinter import filedialogfrom PIL import Image, ImageTkimport numpy as np import random import mathclass Cluster(object):def __init__(self):# pixels是像素的意思&#xff0c;这里定义一个像素组用来存放像素的值self.pixels []# 创…

HubSpot功能有哪些?

HubSpot是一个功能丰富的平台&#xff0c;主要涵盖市场营销、销售、客户服务和客户关系管理&#xff08;CRM&#xff09;等领域。以下是HubSpot的一些主要功能&#xff1a; 市场营销自动化&#xff1a;HubSpot允许用户制定和执行多渠道的市场营销活动&#xff0c;包括创建和管…

力扣HOT100 - 105. 从前序与中序遍历序列构造二叉树

解题思路&#xff1a; 分治 以中序遍历为参照&#xff0c;用前序遍历的节点构建二叉树。 root 1 index - left表示前序遍历右子树的开始节点&#xff0c;即当前节点的下一个节点左子树长度。 class Solution {int[] preorder;HashMap<Integer, Integer> map new Ha…

C#基础:WPF中常见控件的布局基础

一、用ViewBox实现放缩控件不变 二、布局代码 <Window x:Class"WpfApp1.MainWindow"xmlns"http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x"http://schemas.microsoft.com/winfx/2006/xaml"Title"MainWindow"…

小瓶清洗桶抗酸碱耐高温PFA清洗器半导体实验清洗用

PFA清洗桶&#xff0c;也叫PFA清洗器、PFA小瓶清洗桶&#xff0c;主要用于清洗浸泡实验室小型PFA溶样罐和烧杯等&#xff0c;带有密封螺纹盖&#xff0c;可以用于摇晃&#xff0c;高纯耐高温材质可放置电热板上加热使用。 特点&#xff1a;可拆卸倒酸口&#xff0c;可安全倒出酸…

ctfshow菜狗杯 web 无算力以及easyPytHon_P

web签到题 error_reporting(0); highlight_file(__FILE__);eval($_REQUEST[$_GET[$_POST[$_COOKIE[CTFshow-QQ群:]]]][6][0][7][5][8][0][9][4][4]);套娃传参 中文要编码 Cookies &#xff1a;CTFshow-QQ%E7%BE%A4:a POST:ab GET:?bc&c[6][0][7][5][8][0][9][4][4]syste…

干货收藏:CRM系统帮助中心设计教程

CRM系统&#xff0c;也就是客户关系管理系统&#xff0c;是企业运营中的得力助手&#xff0c;但太复杂的CRM系统有时候用起来也挺让人头疼的。所以&#xff0c;一个好用、易懂的帮助中心就显得尤为重要啦&#xff01;今天我来跟大家分享一下关于CRM系统帮助中心的设计教程。 1.…

09 MySQL--操作真题

1. not in 用一条 SQL 语句&#xff0c;查询出每门课程都大于 80 分的人。 分析&#xff1a; 去重查询出存在课程小于 80 分的人&#xff0c;设为集合A查询不在集合 A 中的人 # 第一步&#xff1a;找小于等于80分的学员姓名 select distinct name from t_student where fens…

Transformer - 特征预处理

Transformer - 特征预处理 flyfish 原始数据 train_data.values [[ 5.827 2.009 1.599 0.462 4.203 1.34 30.531][ 5.76 2.076 1.492 0.426 4.264 1.401 30.46 ][ 5.76 1.942 1.492 0.391 4.234 1.31 30.038][ 5.76 1.942 1.492 0.426 4.234 1.31…

Linux命令超详细介绍

目录 安装 Linux的目录结构&#xff1a; Linux命令入门&#xff1a; Linux命令的基础格式&#xff1a; 例子&#xff1a; ls 参数 选项 注意&#xff1a; 目录切换命令&#xff1a;cd/pwd cd: pwd: 相对路径和绝对路径&#xff1a; mkdir 不用参数&#xff1a; …

【Node.js工程师养成计划】之打造自己的脚手架工具

一、创建全局的自定义命令 1、打开一个空文件夹&#xff0c;新建一个bin文件夹&#xff0c;在bin文件夹下新建cli.js文件&#xff0c;js文件可以命名为cli.js&#xff08;您随意&#xff09; 2、在cli.js文件中的开头&#xff08;&#xff01;&#xff01;&#xff09;写下面这…

NeRF in the Wild: Neural Radiance Fields for Unconstrained Photo Collections

NeRF in the Wild: Neural Radiance Fields for Unconstrained Photo Collections(野外的 NERF: 用于无约束照片采集的神经辐射场&#xff09; Abstract 我们提出了一种基于学习的方法来合成新的视图的复杂场景使用只有非结构化的收集野生照片。我们建立在神经辐射场(neRF)的…

对于地理空间数据,PostGIS扩展如何在PostgreSQL中存储和查询地理信息?

文章目录 一、PostGIS扩展简介二、PostGIS存储地理空间数据1. 创建空间数据表2. 插入空间数据 三、PostGIS查询地理空间数据1. 查询指定范围内的地理空间数据2. 计算地理空间数据之间的距离3. 对地理空间数据进行缓冲区分析 四、总结 地理空间数据是指描述地球表面物体位置、形…

11、【桥接模式】让将抽象和实现分离,使得它们可以独立地变化

你好&#xff0c;我是程序员雪球。 今天我们来聊聊 23 种设计模式中&#xff0c;一种常见的结构型模式&#xff0c;桥接模式。聊聊它的设计思想、应用场景&#xff0c;以及如何使用。 一、设计思想 桥接模式&#xff08;Bridge Pattern&#xff09;是一种结构型设计模式&#…

Python slice切片

1. 切片简介 取一个str、list、tuple的部分元素是非常常见的操作 切片 译自英文单词slice,指的是一部分切片 根据 步长step 从原序列中取出一部分元素组成新序列切片适用于 字符串、列表、元组 2. 切片的格式 字符串[开始索引:结束索引:步长] 包含开始索引, 不包含结束索…

vue+springboot实验个人信息,修改密码,忘记密码功能实现

前端部分 新增Person&#xff08;个人页面&#xff09;&#xff0c;Password&#xff08;修改密码页面&#xff09;&#xff0c;还需要对Manager&#xff0c;login页面进行修改 router文件夹下的index.js&#xff1a; import Vue from vue import VueRouter from vue-router i…

在 vue3 中使用高德地图

前言&#xff1a;定位地图位置所需要的经纬度&#xff0c;可以通过 拾取坐标 获取。 一&#xff1a;快速上手 1. 安装依赖 npm install amap/amap-jsapi-loader # or pnpm add amap/amap-jsapi-loader # or yarn add amap/amap-jsapi-loader 2. 创建组件 src/components/Ma…

飞书小技巧:markdown导出

文章目录 下载Feishu2Md飞书应用配置配置feishu2md工具绑定应用导出markdown 下载Feishu2Md Feishu2Md 飞书应用配置 进入飞书开发者后台 https://open.feishu.cn/app。 点击“创建企业自建应用”&#xff0c;并填写应用名称等信息。而后点击创建。 PS: 此处作者创建应用名…