高哲技术博客 高哲技术博客
首页
编程
爬虫
运维
硬件
收藏
归档
关于

嘉美伯爵

前途光明,无需畏惧
首页
编程
爬虫
运维
硬件
收藏
归档
关于
  • 架构

  • 思想

  • 语言

    • golang

    • cxx

    • python

    • java

      • Java基础知识扫盲
      • 深入理解Java注解
      • Spring常用注解整理
      • Spring全家桶整理及应用
      • Spring JPA使用
      • Spring WebFlux使用
      • Netty使用总结及错误整理
      • Spring用户认证体系(Oauth2.0)
        • 授权模式
        • 授权码模式
        • 密码模式
        • 扩展
        • 参考
      • Java8中的并行流ParallelStream
      • grpc在Spring Boot中的使用
      • spring boot中如何使用异步
      • Java中etcd的使用
      • spring maven打包减少jar包体积
    • rust

    • vue

    • grpc

    • electron

    • uniapp

    • android

    • react

    • flutter

  • 设计模式

  • 微服务

  • 数据分析

  • 人工智能

  • 区块链

  • 数据结构

  • 技术调研

  • 性能优化

  • 生产问题

  • 编程
  • 语言
  • java
fovegage
2021-06-20
目录

Spring用户认证体系(Oauth2.0)

# 授权模式

# https://zhuanlan.zhihu.com/p/92051359 (详细)
# https://www.ruanyifeng.com/blog/2014/05/oauth_2_0.html

# 适用于三方应用场景,最严谨的校验模式
授权码模式:https://wx.qq.com/oauth/authorize?response_type=code&client_id=javaboy&redirect_uri=www.javaboy.org&scope=all
# 适用于集团内部场景,用户向客户端提供用户名和密码
密码模式:https://wx.qq.com/oauth/authorize?response_type=password&client_id=javaboy&username=%E6%B1%9F%E5%8D%97%E4%B8%80%E7%82%B9%E9%9B%A8&password=123
# 适用于开发平台API场景,客户端从平台申请 client_id 和 client_secret, 请求请直接返回token 
客户端模式: https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&client_id=APPID&client_secret=APPSECRET
# 相比授权码模式省略了code
简化模式: https://api.weixin.qq.com/cgi-bin/token?grant_type=token
1
2
3
4
5
6
7
8
9
10
11

# 授权码模式

https://zhuanlan.zhihu.com/p/347683336

1. 授权服务器  用户名+密码登录进行授权 返回token
2. 资源服务器  获取到token,拿着token去获取资源

# 第一步(网站调起下面的网址)
https://wx.qq.com/oauth/authorize?response_type=code&client_id=javaboy&redirect_uri=www.javaboy.org&scope=all

# 第二步  在上一步完成登录后会重定向code, 鉴权服务器向调用方进行回掉   服务方监听,收到进行处理
https://client.example.com/cb?code=SplxlOBeZQQYbYS6WxSbIA&state=xyz

# 第三步  网站服务器收到code, 再次向鉴权服务器发送请求,鉴权服务器返回 token 信息  通过 scope 进行资源的限制
https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code
{ 
"access_token":"ACCESS_TOKEN", 
"expires_in":7200, 
"refresh_token":"REFRESH_TOKEN",
"openid":"OPENID", 
"scope":"SCOPE",
"unionid": "o6_bmasdasdsad6_2sgVt7hMZOPfL"
}

# 第四步  得到上一步的信息,说明登录成功,通过access_token 请求资源服务器
比如微信: 可以拿着 access_token  去获取 头像信息   可以访问的资源信息
拿到信息  判断是否注册了网站 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25

# 密码模式

# 密码模式一般用于集团内部的权限,由于知道了密码,因此省略了用户鉴权的过程

# 第一步
http://localhost:7654/oauth/token?username=gage&password=123456&scope=all&grant_type=password&client_id=vpnbook&client_secret=xxxx
{
  "access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX25hbWUiOiJnYWdlIiwic2NvcGUiOlsiYWxsIl0sImV4cCI6MTY4Nzg0NzYxMywiYXV0aG9yaXRpZXMiOlsiL3YyIl0sImp0aSI6IjkzOWUwZWVkLTRiOGYtNGYwOC1hMDU4LTE5NjBhYjc1YzBhZiIsImNsaWVudF9pZCI6InZwbmJvb2siLCJlbmhhbmNlIjoiVnBuQm9vayBGbG93IEF1dGgifQ.bzG5WeG0gCKScZVNN3qMHl1kX_uTjEhF8YwYgPK12ak",
  "token_type": "bearer",
  "refresh_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX25hbWUiOiJnYWdlIiwic2NvcGUiOlsiYWxsIl0sImF0aSI6IjkzOWUwZWVkLTRiOGYtNGYwOC1hMDU4LTE5NjBhYjc1YzBhZiIsImV4cCI6MTY4OTgzNDgxMywiYXV0aG9yaXRpZXMiOlsiL3YyIl0sImp0aSI6IjFkM2VhNDlmLWJmMmUtNGE4ZS1iMDVlLTJhYzZiZWZmYjNlNyIsImNsaWVudF9pZCI6InZwbmJvb2siLCJlbmhhbmNlIjoiVnBuQm9vayBGbG93IEF1dGgifQ.WLNtzfuCnNiOBXp1-6pG_UaygeeH9rcAO3x6hRS18Yg",
  "expires_in": 604799,
  "scope": "all",
  "enhance": "VpnBook Flow Auth",
  "jti": "939e0eed-4b8f-4f08-a058-1960ab75c0af"
}

# 第二步
得到上一步的信息,说明登录成功,通过access_token 请求资源服务器
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

# 扩展

# 如何将oauth2.0引入集团内部产品,scope和level如何划分
目录使用 oauth2.0管理
会员等级

# 两个权限
client权限 (百度网盘授权后的权限)
    1. 
user权限
    1. 会员等级
1
2
3
4
5
6
7
8
9

# 参考

# gitee
https://gitee.com/api/v5/oauth_doc#/
# 微信
https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/Wechat_webpage_authorization.html
1
2
3
4
#oauth2.0
上次更新: 2023-06-21 15:59:42
Netty使用总结及错误整理
Java8中的并行流ParallelStream

← Netty使用总结及错误整理 Java8中的并行流ParallelStream→

最近更新
01
token embed和postion embed
06-10
02
k8s pod日志排查问题
10-24
03
golang内部私服建设方案
10-21
更多文章>
Theme by Vdoing | Copyright © 2018-2025 嘉美伯爵 | 鲁ICP备20001560号-4
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式