Origin of Ray

一起探索互联网的秘密

问题描述

passport-azure-ad 是我们在使用node express作为服务器,passport用于验证登陆,同时又需要去azure第三方认证登陆时需要用到的插件。

但是在使用过程中我们可能会遇到这样一种情况,就是明明我们的所有配置都已经配置好了,但是会遇到无限 回调的情况,具体表现形式就是我们利用微软账号登陆成功之后,页面会不断刷新,最终提示我们无法成功登录。

这个不断刷新的过程其实是, 首先发送一个OAuth登陆流程过程中的认证请求,认证成功之后会回调你事先配置好的redirectURL,这个url一般是我们自己服务器需要处理的请求,在这个请求中你需要用到passport的authenticate去认证是否登陆成功,如果这个认证中遇到id-token为空的情况,就会再次发起请求,一旦认证成功又会调用redirectURL。

在这个过程中,如果你确实在微软那里认证成功了,但是回调自己的服务器请求时又确实没有拿到id-token,就会出现无限回调的情况。

阅读全文 »

OAuth 2.0

OAuth 是一个关于授权(Authorization)的开放网络标准,在全世界得到了广泛的应用,目前的版本是2.0

阅读全文 »

最近使用了一下elementUI最新版本中的无限加载组件,在使用过程中有的情况下可能会发生加载函数无限调用的情况,于是去研究了一下源码。

阅读全文 »

JSON Web Token(缩写 JWT)是目前最流行的跨域认证解决方案

阅读全文 »

今天阅读https原理的时候,发现它采用了非对称加密的知识,于是去探索了一下非对称加密的基本原理。

阅读全文 »

Point1

今天在写测试的时候干了一件非常蠢的事情,记录一下,提醒自己:sinon.stub可以mock测试类中的方法,但是如果A方法被同一个类中的B方法调用,当B执行的时候,调用的还是原来的A方法

阅读全文 »

什么是迭代器(Iterator)?

迭代器(Iterator)就是这样一种机制。它是一种接口,为各种不同的数据结构提供统一的访问机制。任何数据结构只要部署 Iterator 接口,就可以完成遍历操作(即依次处理该数据结构的所有成员)。

Iterator 的作用有三个:一是为各种数据结构,提供一个统一的、简便的访问接口;二是使得数据结构的成员能够按某种次序排列;三是 ES6 创造了一种新的遍历命令for...of循环,Iterator 接口主要供for...of消费。

迭代器是一个拥有next()方法的特殊对象,每次调用next()都返回一个结果对象。这个对象有两个键值对,分别是value和done,value就是迭代器每次返回的结果,而done则标志着迭代器是否结束。我们可以用es5的语法来模拟一个迭代器。

阅读全文 »

就在大家 happy 的这几天期间,Google 公开了两个文档,我感觉作为程序员和工程师非常有必要了解一下。作者在阅读之后截取部分原文并精简了其他一些部分总结下来。

阅读全文 »
0%