获得徽章 6
简单理解OAuth 2.0 :
以“用户用微信登录掘金”的场景为例,这中间涉及到两个应用,但只需要登录一次微信,用户将在微信的信息,这个过程就是授权,但是用户需要登录一次微信并同意授权给掘金即可,这中间的交互过程和安全问题就是OAuth 2.0所定义的授权标准
。
对于开发者而言,如果你是微信应用的开发者,那么涉及到OAuth 2.0的部分就是提供授权服务。授权服务要做的几个事情:
1.管理第三方应用(掘金),因为不可能把用户的信息授权给任意一个应用。
2.管理访问令牌,用户同意授权且验证第三方应用后,会发放访问令牌。这里要管理令牌的生成、续期、失效、验证等。
3.管理用户数据,要保障用户数据的安全。
如果你是掘金应用的开发者,那么涉及到OAuth 2.0的部分就是提供代理服务。代理服务要做的几个事情:
1.获取授权许可,去微信授权服务注册你的信息,拿到授权许可(appid、appsecret等)。
2.获取访问令牌,引导用户去授权服务获取访问令牌。
3.获取用户数据,带着访问令牌访问授权服务获取用户数据。
可以看到访问令牌其实是OAuth 2.0中的关键,拿到访问令牌也意味着整个授权过程完成。在OAuth 2.0标准中,又因为不同的授权场景存在不同授权类型或者是获取访问令牌的方式,这也是和OAuth 1.0的不同之处。四种授权类型:
1.授权码许可,授权的过程中涉及到第三方应用的前端页面和授权服务的交互,授权码起到重定向和安全的作用。授权服务验证用户密码后先返回授权码,最终通过授权码获取到访问令牌,也是安全性最高的一个。
2.资源拥有者凭据许可,名字有点长,简单理解就是第三方应用和授权服务属于一个主体,授权服务验证用户密码后直接给访问令牌,有点单点登录的意思。
3.客户端凭据许可,名字有点抽象,简单理解就是用户的信息是公开的,虽然是公开的,但还是需要授权码,只不过不需要用户介入,没有登录操作,直接用appid、appsecret获取访问令牌。
4.隐式许可,这个就更简单了,为了安全,appsecret和令牌都是第三方应用通过后端服务访问,不暴露出来,但是遇到那些只有前端的应用,appsecret就没有存在的必要了,直接用appid获取访问令牌。
简而言之,言而总之,OAuth 2.0就是定义了几种授权类型,围绕着用户、第三方应用和授权方展开。
以“用户用微信登录掘金”的场景为例,这中间涉及到两个应用,但只需要登录一次微信,用户将在微信的信息,这个过程就是授权,但是用户需要登录一次微信并同意授权给掘金即可,这中间的交互过程和安全问题就是OAuth 2.0所定义的授权标准
。
对于开发者而言,如果你是微信应用的开发者,那么涉及到OAuth 2.0的部分就是提供授权服务。授权服务要做的几个事情:
1.管理第三方应用(掘金),因为不可能把用户的信息授权给任意一个应用。
2.管理访问令牌,用户同意授权且验证第三方应用后,会发放访问令牌。这里要管理令牌的生成、续期、失效、验证等。
3.管理用户数据,要保障用户数据的安全。
如果你是掘金应用的开发者,那么涉及到OAuth 2.0的部分就是提供代理服务。代理服务要做的几个事情:
1.获取授权许可,去微信授权服务注册你的信息,拿到授权许可(appid、appsecret等)。
2.获取访问令牌,引导用户去授权服务获取访问令牌。
3.获取用户数据,带着访问令牌访问授权服务获取用户数据。
可以看到访问令牌其实是OAuth 2.0中的关键,拿到访问令牌也意味着整个授权过程完成。在OAuth 2.0标准中,又因为不同的授权场景存在不同授权类型或者是获取访问令牌的方式,这也是和OAuth 1.0的不同之处。四种授权类型:
1.授权码许可,授权的过程中涉及到第三方应用的前端页面和授权服务的交互,授权码起到重定向和安全的作用。授权服务验证用户密码后先返回授权码,最终通过授权码获取到访问令牌,也是安全性最高的一个。
2.资源拥有者凭据许可,名字有点长,简单理解就是第三方应用和授权服务属于一个主体,授权服务验证用户密码后直接给访问令牌,有点单点登录的意思。
3.客户端凭据许可,名字有点抽象,简单理解就是用户的信息是公开的,虽然是公开的,但还是需要授权码,只不过不需要用户介入,没有登录操作,直接用appid、appsecret获取访问令牌。
4.隐式许可,这个就更简单了,为了安全,appsecret和令牌都是第三方应用通过后端服务访问,不暴露出来,但是遇到那些只有前端的应用,appsecret就没有存在的必要了,直接用appid获取访问令牌。
简而言之,言而总之,OAuth 2.0就是定义了几种授权类型,围绕着用户、第三方应用和授权方展开。
展开
评论
1
刚才看了下Elasticsearch的原理,感觉分布式系统的思想都大差不差。下面是我对ES的理解:
1. ES基于Lucene,Lucene底层的存储结构通过Segment表达,Segment里面有分词以及出现的次数和所在的文件,通过这样的结构就能实现搜索功能。那么,在ES中的每个分片就是一个Lucene。
2. 在Lucene中,Segment是在内存中,所以,数据的可靠就需要ES去保障。另外,从这一点也可以得知ES是吃内存的,这也是为什么可以做到实时搜索。
- 单机情况下,为了不影响写入效率,通常的解决方案就是日志先行写入磁盘,就像MySQL中的WAL,在ES中叫TransLog。基于日志形式在进行数据更新时,可以通过合并的方式保障同一条数据不重复,很多分布式系统中都有这样的思想,例如HBase中的LSM。
- 在分布式系统中,数据可靠性的保障都是通过副本的形式,就例如redis、Hadoop、Kafka等等。保障副本的一致就离不开paxos、raft这些一致性协议。
3.当然,在分布式系统中的查询,都是先路由到对应的分片,然后再将各分片的数据聚合,例如Hadoop中的shuffle,在ES中同样会有聚合的阶段。
1. ES基于Lucene,Lucene底层的存储结构通过Segment表达,Segment里面有分词以及出现的次数和所在的文件,通过这样的结构就能实现搜索功能。那么,在ES中的每个分片就是一个Lucene。
2. 在Lucene中,Segment是在内存中,所以,数据的可靠就需要ES去保障。另外,从这一点也可以得知ES是吃内存的,这也是为什么可以做到实时搜索。
- 单机情况下,为了不影响写入效率,通常的解决方案就是日志先行写入磁盘,就像MySQL中的WAL,在ES中叫TransLog。基于日志形式在进行数据更新时,可以通过合并的方式保障同一条数据不重复,很多分布式系统中都有这样的思想,例如HBase中的LSM。
- 在分布式系统中,数据可靠性的保障都是通过副本的形式,就例如redis、Hadoop、Kafka等等。保障副本的一致就离不开paxos、raft这些一致性协议。
3.当然,在分布式系统中的查询,都是先路由到对应的分片,然后再将各分片的数据聚合,例如Hadoop中的shuffle,在ES中同样会有聚合的阶段。
展开
评论
5
jym,周末去给强哥当小兄弟去了,分享一下达达骑士初体验
先说战果:周末下午2~3点开始,跑了5小时到手100。
坐标:西安
一点经验:
1.不交押金、不买装备、没有健康证的情况下能跑的单有限,大多是药房的单。押金有100、300及以上不同段位,我缴了100押金。
2.有些超市的单,货物7、8公斤甚至10公斤,单价也一般,不知道他们是怎么拿货的。
3.虽然是京东的APP,但是有另外两个外卖平台的单,接过一次某团的烧烤单,挂羊头卖狗肉,小作坊下猛料,我以后是不会点外卖的。
4.大多数的商家在小区外面的商铺,第一次接单跟着导航跑进了小区,然后超时了...
5.不熟悉的情况下接大型商场的单简直是找死,商场大的要死,就两条腿,时间有限,找店找半天,找出口又是半天,超时...
先说战果:周末下午2~3点开始,跑了5小时到手100。
坐标:西安
一点经验:
1.不交押金、不买装备、没有健康证的情况下能跑的单有限,大多是药房的单。押金有100、300及以上不同段位,我缴了100押金。
2.有些超市的单,货物7、8公斤甚至10公斤,单价也一般,不知道他们是怎么拿货的。
3.虽然是京东的APP,但是有另外两个外卖平台的单,接过一次某团的烧烤单,挂羊头卖狗肉,小作坊下猛料,我以后是不会点外卖的。
4.大多数的商家在小区外面的商铺,第一次接单跟着导航跑进了小区,然后超时了...
5.不熟悉的情况下接大型商场的单简直是找死,商场大的要死,就两条腿,时间有限,找店找半天,找出口又是半天,超时...
展开
35
13
赞了这篇沸点
今天原本平平无奇的沸点小村,突然来了一位大魔王,大魔王以一敌百,使用不明AOE向沸点小村发起了猛烈的进攻,整个小村刀光剑影,硝烟弥漫,吾体弱多病的小村史官只能执笔记录下此次大战盛况
27
14
赞了这篇沸点
中午休息刷抖音看到一个98年博主3战考研失败,然后回顾自己失败的27年,恍惚间,我也想起来自己这29年的经历,高中以前的浑浑噩噩,对于读书这个概念极微的模糊,打架,逃学,做坏事的名单上必然有我的名字,上课的位置在老师眼皮下的“雅座”,每次家长会后回家难逃家里的一顿挨打,中考失利后,我爸托关系把我送进了县城的初中复读,第一学期还算认真,考试成绩还算可以,但在得到老师夸奖的第二学期又开始原形毕露,渐渐开始捣蛋,最后二战中考成绩距离上县上最好的高中相差9分,当时心气很高,不愿去其他的高中,没法家里用每年多花5k的钱来换取我能够上这个高中,我当时看到了父母的辛酸,高一高二都在认真学习,高三凭着自己的努力考入当时的实验班,家里父母也很开心,觉得我进了实验班最起码二本应该问题不大,我也开始沾沾自喜,觉得稍微用的心就能进实验班,二本用点心即可,但是这一年和班里的一个女生谈了恋爱,又开始了老毛病,最终高考距离省内二本最低分差21分,高考暑假,别的考上的同学都开开心心旅游,选择好的专业,我却带着行李去了深圳,投靠姐姐姐夫在那边打工,家里让我回来报考一个汽修方面的专科学校,学一门汽修技术,因为我爸是汽修工,让我学了有个谋生的手段,但是我看到我爸每天回来手里修车的黑油,我说我不愿意,我想复读,没发,我又交了好几千回到学校复读高四,开学我定了好多计划如何如何努力,也是一样,每次成绩好转的时候,我就放松,反复横跳,学习中,遇到不会的,自我逃避,最终,复读一年的成绩还不及上一年的分数,家里彻底对我失望了,让我还是选择汽修的学校读出来修车,我姐也劝我,可是我真的不感兴趣,我说我想学计算机,但是当时家里姊妹没有一个这方面的涉及,我一点要去,不是因为说爱打游戏,就是想要上,家里拗不过我爸写了一份协议,让我在读出来后挣钱还读我自己上这个大学的钱,我签了,我就来了这个学习,但当时知道可以专升本后就下定决心一定要考上本科,自那以后,开始复习我薄弱的英语,从开始的24分到后来的100多,我知道自己这一次没有退路了,最后一次机会了,好在这一次没犯老毛病,考上了本专业还算可以的本科学校,后来就毕业,入坑前端从事现在的工作,虽说这几年大环境不好,但好在自己没有乱花钱,去年买了自己喜欢的车,今年计划买房,牛马套餐上全
,写这么多只是想说不管前路如何弯曲,只要自己认为正确的适合自己的路,咬碎牙坚持!!
,写这么多只是想说不管前路如何弯曲,只要自己认为正确的适合自己的路,咬碎牙坚持!!
展开
90
77
![[不看]](http://lf-web-assets.juejin.cn/obj/juejin-web/xitu_juejin_web/img/jj_emoji_102.b113c42.png)
![[骷髅]](http://lf-web-assets.juejin.cn/obj/juejin-web/xitu_juejin_web/img/jj_emoji_35.8d57f28.png)