OAuth 2.0 概念及授权流程梳理_其它综合

来源:脚本之家  责任编辑:小易  

有以下限制,1.必须在微信打开2.微信页面授权其中第一步比较容易实现,修改下ua(user-agent),让其携带“MicroMessenger”字段即可。第二部则是由于微信浏览器内置一些js库,在其他浏览器是无内置的,所以在chrome网页授权基本是无效的。不过可以用其他办法略过授权。解决方案:1、是伪装微信浏览器,使其绕过微信验证,2、获取cookie,跳过授权验证。2、 准备工具1.chrome,主要是用于修改user-agent.2.fiddler抓包工具(安装正式抓取https包)一,修改UA打开Chrome浏览器,按下F12进入手机调试模式选择Edit点击Add custom device输入ua,UA通过fiddler抓包获取我的 User-Agent是: Mozilla/5.0 (Linux; Android 6.0; vivo Y67A Build/MRA58K; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/53.0.2785.49 Mobile MQQBrowser/6.2 TBS/043508 Safari/537.36 MicroMessenger/6.5.13.1100 NetType/WIFI Language/zh_CN可以直接使用这个UA,也可以抓取自己的ua第二步,添加cookiefiddler抓取cookie在console下面输入 document.cookie=“(cookie通过抓包获取)”,后回车打开Chrome可以看到,我添加的cookie成功chrome打开地址,不会报错啦www.zgxue.com防采集请勿采集本网。

OAuth2 的概念

1.先到公众平台网站的我的服务页中配置授权回调域名。(请注意,这里填写的域名不要加http://) 2.让用户进入制定URL(https://open.weixin.qq.com/connect/oauth2/authorize?app

OAuth是一个关于授权的开放网络标准,OAuth2是其2.0版本。

可能是浏览器的编码,和用户名写的时候的编码不一致,解析到网页就是乱码喽! 能分清楚就好! 主要还是手机上使用!

它规定了四种操作流程(授权模式)来确保安全

$code=$_GET['code']; dump($code); $url="https://api.weixin.qq.com/sns/oauth2/a 就是授权的全部内容。 以上所述是小编给大家介绍的微信公众号OAuth2.0网页授权问题

应用场景有第三方应用的接入、微服务鉴权互信、接入第三方平台、第一方密码登录等

初始是空的,如果你开发或者使用的第三方平台需要获取用户身份,就会需要授权,这个域名一般是你第三方网页的域名。如果用的第三方平台,直接打开平台找到这个域名就行了

Java王国中Spring Security也对OAuth2标准进行了实现。

1)在“获取用户基本信息”接口里得到的客户信息比“OAuth2.0网页授权”接口还多,那么为何还要用“OAuth2.0网页授权”接口呢? 2)如果只要获取OpenID的话,是不是只用

OAuth2授权模式

http://music.qq.com 、 http://qq.com无法进行OAuth2.0鉴权3、如果公众号登录授权给了 它的好处很明显,能够配合着应用的拆分逻辑,集成同一个公众号的登录及支付功能,不必

OAuth2定义了四种授权模式(授权流程)来对资源的访问进行控制 授权码模式(Authorization Code Grant) 隐式授权模式(Implicit Grant) 用户名密码模式(Resource Owner Password Credentials Grant) 客户端模式(Client Credentials Grant)

access token 存在哪里主要看你的业务需求。大多数oauth授权服务器都支持缓存token。也就是说即使你不保存它,重复请求授权的时候,oauth授权服务器会将缓存中的token返

无论哪个模式(流程)都拥有三个必要角色:客户端授权服务器资源服务器,有的还有用户(资源拥有者),下面简单介绍下授权流程

站内应用参考sdk站内应用demo,站内应用通过给iframe对应的页面返回token信息。另外,新浪要求必须弹出界面的。

授权码模式(Authorization Code Grant)

您好,我看到您的问题很久没有人来回答,但是问题过期无人回答会被扣分的并且你的悬赏分也会被没收!所以我给你提几条建议: 一,你可以选择在正确的分类下去提问,这样知

授权码模式是OAuth2目前最安全最复杂的授权流程,先放一张图,稍做解释

如果是隐式授权的话 只需要去微博 我的应用下面设置一个回调 并且在android代码里面 设置回调页的地方写上去就可以 如果是另外一种方式的OAuth2.0授权,是需要去微博 我

如上图,我们可以看到此流程可大致分为三大部分 Client Side:用户+客户端与授权服务器的交互 Server Side:客户端与授权服务器之间的交互 Check Access Token:客户端与资源服务器之间的交互 + 资源服务器与授权服务器之间的交互

http://www.cnblogs.com/zhangtingkuo/p/cnblogs-oauth20-get-access-token-and-login.html

整体上来说,可以用一句话概括授权码模式授权流程

没办法的,每次都需要。不过我之前开发微信支付的时候发现好像可以用CURL来绕过授权的。具体我没研究下去

客户端换取授权码,客户端使用授权码换token,客户端使用token访问资源

接下来对这三部分进行一些说明 :

前提条件: 第三方客户端需要提前与资源拥有方(同时也是授权所有方)协商客户端id(client_id),客户端密钥(client_secret) 文中暂时未将scope、state等依赖具体框架的内容写进来,这里可以参考Spring Security OAuth2的实现

Client Side

客户端换取授权码

这个客户端可以是浏览器, 客户端将client_id + client_secret + 授权模式标识(grant_type) + 回调地址(redirect_uri)拼成url访问授权服务器授权端点 授权服务器返回登录界面,要求用户登录(此时用户提交的密码等直接发到授权服务器,进行校验) 授权服务器返回授权审批界面,用户授权完成 授权服务器返回授权码到回调地址

Server Side

客户端使用授权码换token 客户端接收到授权码,并使用授权码 + client_id + client_secret访问授权服务器颁发token端点 授权服务器校验通过,颁发token返回给客户端 客户端保存token到存储器(推荐cookie)

Check Access Token

客户端使用token访问资源 客户端在请求头中添加token,访问资源服务器 资源服务器收到请求,先调用校验token的方法(可以是远程调用授权服务器校验端点,也可以直接访问授权存储器手动校对) 资源服务器校验成功,返回资源

这里的说明省去了一些参数,如scope(请求token的作用域)、state(用于保证请求不被CSRF)、redirect_uri(授权服务器回调uri),先理解概念,实现的时候再去要求

隐式授权模式(Implicit Grant)

隐式授权模式大致可分为两部分: Client Side:用户+客户端与授权服务器的交互 Check Access Token:客户端与资源服务器之间的交互 + 资源服务器与授权服务器之间的交互

用一句话概括隐式授权模式授权流程

客户端让用户登录授权服务器换token,客户端使用token访问资源

Client Side

客户端让用户登录授权服务器换token 客户端(浏览器或单页应用)将client_id + 授权模式标识(grant_type)+ 回调地址(redirect_uri)拼成url访问授权服务器授权端点 授权服务器跳转用户登录界面,用户登录 用户授权 授权服务器访问回调地址返回token给客户端

Check Access Token

客户端使用token访问资源 客户端在请求头中添加token,访问资源服务器 资源服务器收到请求,先调用校验token的方法(可以是远程调用授权服务器校验端点,也可以直接访问授权存储器手动校对) 资源服务器校验成功,返回资源

密码模式(Resource Owner Password Credentials Grant)

密码模式大体上也分为两部分: Client Side: 用户与客户端交互,客户端与授权服务器交互 Check Access Token:客户端与资源服务器之间的交互 + 资源服务器与授权服务器之间的交互

一句话概括用户名密码模式流程:

用户在客户端提交账号密码换token,客户端使用token访问资源

Client Side

用户在客户端提交账号密码换token 客户端要求用户登录 用户输入密码,客户端将表单中添加客户端的client_id + client_secret发送给授权服务器颁发token端点 授权服务器校验用户名、用户密码、client_id、client_secret,均通过返回token到客户端 客户端保存token

Check Access Token

客户端使用token访问资源 客户端在请求头中添加token,访问资源服务器 资源服务器收到请求,先调用校验token的方法(可以是远程调用授权服务器校验端点,也可以直接访问授权存储器手动校对) 资源服务器校验成功,返回资源

客户端模式(Client Credentials Grant)

客户端模式大体上分为两部分: Server Side: 客户端与授权服务器之间的交互 Check Access Token: 客户端与资源服务器,资源服务器与授权服务器之间的交互

一句话概括客户端模式授权流程:

客户端使用自己的标识换token,客户端使用token访问资源

Server Side

客户端使用自己的标识换token 客户端使用client_id + client_secret + 授权模式标识访问授权服务器的颁发token端点 授权服务器校验通过返回token给客户端 客户端保存token

Check Access Token

客户端使用token访问资源 客户端在请求头中添加token,访问资源服务器 资源服务器收到请求,先调用校验token的方法(可以是远程调用授权服务器校验端点,也可以直接访问授权存储器手动校对) 资源服务器校验成功,返回资源

OAuth2授权模式的选型

考虑到授权场景的多样性,可以参考以下两种选型方式

按授权需要的多端情况

按客户端类型与所有者

后记

学习OAuth2有一段时间了,把学到的知识分享出来,行文中难免有错误,如果发现还请留言指正,谢谢合作

参考文章与资料:

https://time.geekbang.org/course/intro/84 作者:杨波

https://blog.csdn.net/sinat_25295611/article/details/84980987 作者:Kayfen

How OAuth 2.0 works and how to choose the right flow 作者:Lorenzo Spyna

原文出处https://www.cnblogs.com/hellxz/p/oauth2_process.html

到此这篇关于OAuth 2.0 概念及授权流程梳理的文章就介绍到这了,更多相关OAuth2.0 授权流程内容请搜索真格学网以前的文章或继续浏览下面的相关文章希望大家以后多多支持真格学网!

OAuth(开放授权)是一个开放标准,允许用户让第三方应用访问该用户在某一网站上存储的私密的资源(如照片  视频  联系人列表),而无需将用户名和密码提供给第三方应用,安全认证吧,应该是本人安全认证吧,授权就是给予通过和运行的权利 属于安全认证范畴,安全认证,属于安全认证范畴,升级微信版本内容来自www.zgxue.com请勿采集。


  • 本文相关:
  • nodejs实现oauth2.0授权服务认证
  • 微信公众号oauth2.0网页授权问题浅析
  • android仿新浪微博oauth2.0授权界面实现代码(2)
  • 微信网页授权(oauth2.0) php 源码简单实现
  • asp.net实现qq、微信、新浪微博oauth2.0授权登录
  • 使用阿里大于(大鱼)平台进行发送手机验证码的流程
  • win10 + anaconda3 + python3.6 安装tensorflow + keras的步骤详
  • 2018年最值得一读的互联网书单
  • android 微信文件传输助手文件夹
  • aergo ship:用于开发智能合约的包管理器
  • csdn 博客的代码高亮问题自己修复
  • matlab中乘法“*”和点乘“.*”;除法“/”和点除“./”的联系和
  • 微信应用号(小程序)入门安装教程及ide(破解版)下载
  • 几道和「黑洞照片」那种海量数据有关的算法问题
  • git push & git pull 推送/拉取分支的具体使用
  • 需要微信Oauth2.0授权是什么意思
  • 如何用浏览器模拟微信浏览器访问需要OAuth2.0网页授权的页...
  • 新浪微博oauth2.0授权怎么弄的
  • 新浪微博OAuth2.0认证,单机授权自动退出程序,logcat里面显示...
  • 认证订阅号可以使用Oauth2.0网页授权吗
  • 微信oauth2.0网页授权,取到用户信息了,但是用户名乱码,是什么...
  • 微信公众号OAuth2.0网页授权问题浅析
  • 微信认证服务号OAuth2.0网页授权的域名初始内容是什么?
  • 微信高级接口OAuth2.0网页授权认证和获取用户基本信息有什...
  • 微信OAuth2.0授权回调页面域名设置问题怎么解决?
  • 使用oauth2.0授权获取access token后保存在哪,在access token...
  • 您好,有个新浪微博站内应用Oauth2.0授权的问题想请教一下
  • 微信oauth2.0授权登录多久有效
  • android 新浪微博Oauth2.0授权问题 最终怎么解决的?
  • 博客园OAuth2.0 授权及用户登录淘宝网店怎么登录
  • 微信OAuth2.0授权,第二次进入时不需要再次授权,怎么实现?
  • oauth2.0的设计初衷是为了通过授权避免用户多次登录吗
  • 网站首页网页制作脚本下载服务器操作系统网站运营平面设计媒体动画电脑基础硬件教程网络安全javascriptasp.netphp编程ajax相关正则表达式asp编程jsp编程编程10000问css/htmlflex脚本加解密web2.0xml/rss网页编辑器相关技巧安全相关网页播放器其它综合dart首页nodejs实现oauth2.0授权服务认证微信公众号oauth2.0网页授权问题浅析android仿新浪微博oauth2.0授权界面实现代码(2)微信网页授权(oauth2.0) php 源码简单实现asp.net实现qq、微信、新浪微博oauth2.0授权登录使用阿里大于(大鱼)平台进行发送手机验证码的流程win10 + anaconda3 + python3.6 安装tensorflow + keras的步骤详2018年最值得一读的互联网书单android 微信文件传输助手文件夹aergo ship:用于开发智能合约的包管理器csdn 博客的代码高亮问题自己修复matlab中乘法“*”和点乘“.*”;除法“/”和点除“./”的联系和微信应用号(小程序)入门安装教程及ide(破解版)下载几道和「黑洞照片」那种海量数据有关的算法问题git push & git pull 推送/拉取分支的具体使用最新idea2020注册码永久激活(激活intellij idea2020永久破解,亲测intellij idea激活码获取方法(i删除svn三种方法delsvn(windows+c/s和b/s两种架构的概念、区别和网址(url)支持的最大长度是多少5个linux平台程序员最爱的开发工intellij idea 2020最新注册码(亲url中斜杠/和反斜杠\的区别小结一张图告诉你计算机编程语言的发展历史编程知识点(1)关键词之存储类型8种类型极品程序员,不知你属于哪一种?antd通过 filterdropdown 自定义按某天时微信公众平台开发——群发信息程序员的新年祝福 happy new yeargithub eclipse配置使用教程详解网站统计中的数据收集原理及实现idea 激活码到期之后的乱象(看看你中没)python实现用户登录并且输入错误三次后锁
    免责声明 - 关于我们 - 联系我们 - 广告联系 - 友情链接 - 帮助中心 - 频道导航
    Copyright © 2017 www.zgxue.com All Rights Reserved