码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • OAuth 理论篇


    OAuth(Open Authorization)是一个开放标准,允许用户授权第三方应用访问他们存储在另外的服务提供者上的信息,而不需要将用户名和密码提供给第三方应用或分享他们数据的所有内容。

    OAuth 是一种授权机制,通过颁发令牌(token)的形式授权第三方应用,获取用户数据。

    角色

    授权服务器(Authorization Server),提供用户认证、用户授权、客户端验证
    资源服务器(Resource Server),拥有用户数据的服务器,比如用户的图片、视频等
    资源所有者(Resource Owner),一般指用户
    客户端(Client),一般指第三方应用

    获取令牌

    OAuth 2.0 规定了四种获得令牌的流程。

    • 授权码(authorization code)
    • 客户端凭证(client credentials)
    • 隐藏式(implicit) (不安全,OAuth 2.1 已移除)
    • 密码式(password) (不安全,OAuth 2.1 已移除)

    授权码流程

    授权中心首页: auth.com
    授权中心的授权页面: auth.com/oauth/authorize
    三方应用首页: client.com
    三方应用回调地址: client.com/callback

    1. 用户访问第三方应用,选择通过OAuth2进行授权,跳转到授权服务器的授权页地址
    2. 三方应用访问授权服务器的授权页面:auth.com/oauth/authorize?response_type=code&client_id=app1&redirect_uri=client.com/callback
    3. 进入授权服务器授权页,先检查用户是否登录,若已登录则展示授权页面,若未登录则先跳转到登录页面,登录后再跳转到授权页
    4. 授权页面上可以点击 “同意授权” 或 “拒绝授权”,用户操作后,会重定向到三方应用的回调地址,并携带授权结果
      1. 若“同意授权”,回调参数为 code,重定向地址 client.com/callback?code=xxx
      2. 若“拒绝授权”,回调参数为 error、error_description,重定向地址 client.com/callback?error=access_denied&error_description=User denied access
    5. 三方应用回调地址,通过code获取token。
    6. 三方应用可以通过token从授权中心获取用户信息,同步到自己应用中,再实现自身应用自动登录。

    reference:
    OAuth 2.0 的一个简单解释
    OAuth 2.0 的四种方式
    https://oauth.net
    https://www.oauth.com


    end

  • 相关阅读:
    R语言使用mlr包创建随机森林分类模型、网格搜索、交叉验证获取随机森林的最佳超参数组合(random forest classification)
    如何准确获取地点位置的经纬度?(高德)
    Git使用简明教程
    C中结构体释放问题
    探花交友03-MongoDB基础
    小易的考试成绩(0 -1背包问题)
    2022年下半年 软件设计师 上午试卷(41题—75题)
    Linux cd 命令使用介绍
    clickhouse笔记04--快速理解分片和副本
    每日三题 9.19
  • 原文地址:https://blog.csdn.net/qq_31772441/article/details/126323021
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号