passport

一款基于.NET Core的认证授权解决方案-葫芦藤1.0开源啦

左心房为你撑大大i 提交于 2020-11-09 17:11:52
背景 18年公司准备在技术上进行转型,而公司技术团队是互相独立的,新技术的推动阻力很大。我们需要找到一个切入点。公司的项目很多,而各个系统之间又不互通,导致每套系统都有一套登录体系,给员工和客户都带来极大的不便。那么从登录切入进去无疑最合适,对于各个团队的技术改造成本也不大。所以我们团队第一个项目就是搭建一套统一登录认证授权系统,那么葫芦藤项目应运而生。 技术方案 后端框架:.NET Core3.1(后期会推出 .NET 5版本) 前端框架:React 数据库:mysql(可根据实际情况,自由切换) 中间件:redis 详细功能 认证授权服务 基于IdentityServer4实现的协议,支持网站、本地应用、移动端、web服务等应用的认证授权逻辑。 单点登录登出 支持各种类型应用上的单点登录登出。开箱即用的基础用户管理模块,包括:注册、登录、手机验证码、忘记密码等。为了安全考虑,集成了腾讯图形验证码。 第三方登录(微信、钉钉) 完善的第三方登录支持。支持首次登录时绑定已存在用户或注册新用户后,自动绑定。 如何快速使用 1.下载代码 clone代码到本地。根目录结构如下: 其中,backend存放的是后端代码,frontend存放的是前端代码。 进入backend目录,使用Visual Studio打开解决方案。目录结构如下: 2.生成数据库 首先在Fulu.Passport

Express 集成 OIDC 单点登录指南

非 Y 不嫁゛ 提交于 2020-09-26 18:03:36
本文以基于 Node.js 平台 Express 框架为例,以及集成 Node.js 身份认证中间件 Passport.js,详细介绍 Express 如何集成 Authing OIDC 单点登录。 OIDC 协议:OIDC(OpenID Connect)是一个基于 OAuth2 协议的身份认证标准协议。OIDC 使用 OAuth2 的授权服务器来为第三方客户端提供用户的身份认证,并把对应的身份认证信息传递给客户端,且可以适用于各种类型的客户端。 Passport :Passport 是 Node.js 的认证中间件,特别灵活和模块化。可非常方便的植入任意基于 Express 的 Web 应用。支持用户名密码、Facebook 和 Twitter 等认证。 一、配置 Authing OIDC 应用 从 Authing.cn 注册并进入 Authing 控制台,创建 OIDC 应用,配置应用信息。 详细配置如下: 应用名: <应用名称> 认证地址: https://<应用域名>.authing.cn 回调 URL:应用登录后回调地址,例如: http://localhost:3004/auth/cb 授权模式:默认 authorization_code、refresh_token、authing Token 返回类型:默认 code token 换取时认证方式:默认 client

xpath定位中详解id 、starts-with、contains、text()和last() 的用法

隐身守侯 提交于 2020-08-18 05:33:38
1、XPATH使用方法 使用XPATH有如下几种方法定位元素(相比CSS选择器,方法稍微多一点): a、通过绝对路径定位元素(不推荐!) WebElement ele = driver.findElement(By.xpath("html/body/div/form/input" )); b、通过相对路径定位元素 WebElement ele = driver.findElement(By.xpath("//input" )); c、使用索引定位元素 WebElement ele = driver.findElement(By.xpath("//input[4]" )); d、使用XPATH及属性值定位元素 WebElement ele = driver.findElement(By.xpath("//input[@id='fuck']" )); // 其他方法(看字面意思应该能理解吧) WebElement ele = driver.findElement(By.xpath("//input[@type='submit'][@name='fuck']" )); WebElement ele = driver.findElement(By.xpath("//input[@type='submit' and @name='fuck']" )); WebElement ele =

客户端 服务器 登录交互逻辑

夙愿已清 提交于 2020-08-17 18:12:14
1 请求响应服务器 这种默认最简单, PC客户端,根据服务器的域名端口号 host:port 给服务器发送请求信息 服务器响应后,再给客户端返回响应信息 发送的信息类似 POST /v1/weibo/do_login HTTP/1.1 Host: org-demo.xnw.com:8082 User-Agent: Mozilla/4.0 Accept: */* Connection: close Content-Type: application/x-www-form-urlencoded;charset=utf-8 Content-Length: 110 account=c%e5%ad%a6%94%9f2&from=PC&gid=0&passport=&password=E10ADC59ABBE56E057F20F883E&src=25&ver=1555 2 push服务器 客户端和服务器不但有正常的 请求 响应机制 还有PUSH机制,所谓push 指的是:服务器实时的push给客户端信息 客户端与push服务器保持长连接,这样才能保证服务器可以实时push给客户端信息 push服务器使用了另一个端口号进行监听绑定处理,比如请求响应服务器的port+某个固定数值 例如10000 3 P2P 鉴于网络环境复杂,P2P 很多情况下并不能成功建立连接 所以很多使用了伪P2P 原理是:

PHP 加解密方法大全

会有一股神秘感。 提交于 2020-08-15 06:27:45
最近看见一篇文章讲的是PHP的加解密方法,正好也自己学习下,顺便以后有用到的地方也好能快速用上,仅供自己学习和复习,好了不多BB,上代码。 基于这几个函数 可逆转的加密为:base64_encode()、urlencode() 相对应的解密函数:base64_decode() 、urldecode() ,示例如下 1、第一种加密解密算法 <? php function encryptDecrypt( $key , $string , $decrypt ){ if ( $decrypt ){ $decrypted = rtrim (mcrypt_decrypt(MCRYPT_RIJNDAEL_256, md5 ( $key ), base64_decode ( $string ), MCRYPT_MODE_CBC, md5 ( md5 ( $key ))), "12" ); return $decrypted ; } else { $encrypted = base64_encode (mcrypt_encrypt(MCRYPT_RIJNDAEL_256, md5 ( $key ), $string , MCRYPT_MODE_CBC, md5 ( md5 ( $key )))); return $encrypted ; } } // 加密:"z0JAx4qMwcF+db5TNbp

封装组件el-upload通过v-model (一): 上传单张图片

可紊 提交于 2020-08-15 02:59:16
ElementUI 中的 el-upload 上传图片 我进行了二次封装。(默认大家都是有一定的vue基础的,细节就不过多的讲了) 在项目中我们主要拿到图片或者其他的一些参数 ,我这里是上传后返回的 Guid , 所以上传的动作我就集中处理了, 像 input 的 v-model 直接获取到参数 页面展示代码: <imgeFile v-model="form.license" allclass="passport-uploader" inclass ="passport-uploader-icon passport-s3" onclass="passport passport-pic"> <div class="el-upload__tip" slot="tip">请上传300*420像素不超过500K大小的图片,图片格式支持.PNG或.JPG</div> </imgeFile> 效果: 组件代码: <template> <el-upload :class="allclass" :accept="accept" :action="fileUrl" :show-file-list="false" :on -success="handlePassportSuccess" :before-upload="beforePassportUpload"> <!---上传图片后的展示效果

使用WinHttpRequest伪造referer

梦想的初衷 提交于 2020-08-11 15:42:23
winhttprequest,使用WinHttpRequest伪造referer,winhttprequest示例代码,winhttprequest入门教程,winhttprequest高级使用教程 从msdn得知, WinHttp.WinHttpRequest.5.1 是 msxml 4.0 的底层对象,也就是说 XMLHTTP/ServerXMLHTTP 也是在它的基础上封装而来。用 WinHttpRequest 发的请求,连 Fiddler 也监测不到,看来确实是比较底层的东西。 既然可以用它来伪造所有 http 请求的 header,那 Cookies、Sessionid 自然也就可以得到并传递了。下面是实战代码,用命令行登录博客园,共三次请求,第一次请求获取表单的 VIEWSTATE 和 EVENTVALIDATION,第二次带账户登录,第三次带Cookie访问其首页: //封装成远程访问的函数 function RemoteCall(method, url, param, header){ var obj = new ActiveXObject("WinHttp.WinHttpRequest.5.1"); obj.Open(method||"GET", url, false); obj.Option(4) = 13056; obj.Option(6) = false;

滴滴业务中台构建实践,首次曝光

冷暖自知 提交于 2020-08-08 01:04:28
何修峰,就职于滴滴业务中台,任高级技术专家一职,致力于微服务治理、提高系统工程效率、构建底层基础组件或服务,在大型分布式系统构建、微服务治理、复杂系统重构方面有丰富的经验,现负责滴滴支付中台基础工作,构建支付的底层基础设施,以打造稳定、高效、可扩展的支付底层能力为己任,提高工程效率,助力集团各业务线快速发展。 滴滴是一家以出行为核心、辐射单车、代驾、车服、金融、国际化等领域的高速发展的科技公司,在各条业务线飞速发展的过程中会存在着很多相同或者类似的业务需求,如何通过技术的手段抽象、沉淀这些业务为通用、稳定基础能力,让各业务线专注于其个性化的部分,快速的推出适合市场的新产品,是业务中台核心价值的体现。滴滴业务中台已经构建了订单中心、计价中心、支付中心、passport、用户中心、触达平台六大能力,高效率、低成本的支持了各条业务线的快速发展。本次分享将从中台边界界定、能力搭建、业务协作以及实施过程中遇到的问题、积累的经验进行分享。 来源: oschina 链接: https://my.oschina.net/idea813/blog/4422332

202006-3 CCF CSP认证 Markdown渲染器(详解大模拟)

我怕爱的太早我们不能终老 提交于 2020-08-07 16:27:38
题目链接:(由于要提供个人账号,才能进入,贴一个地址吧) https://passport.ccf.org.cn/ 题目大意: (个人感觉这个题,有些地方表达不够清晰。) 从前有个MarkDown渲染器。它能把我写的乱七八糟的文本,转化成漂漂亮亮的那种具体,怎么转换呢? 本题有段落和项目之分,你比如说我上边说的这两行废话就是段落。 而什么是项目呢?就是你比如本行,前边有一个点点,这就是项目,我这个项目还没说完,就会自动切行,你比如现在。 而当我先有了另一个点点也就是另一个项目,这两个点点,就组成了一个项目列表,中间不需要空行分割。 当我结束了上边的项目列表,下边要接段落的时候,中间要空一行。 对于段落的处理: 1. 去掉每行行首行尾的空格。 2. 开始打印,当这一行够了w个字符要换行。 3. 碰到一个或连续的多个空行要切一个空行。 4. 如果换的新行,开始是空格那么就要删掉这些空格。 对于项目的处理: 1. “* ” 这个代表了一条项目的开始,也就是那个点点,碰到这个东西要开始一个新的列表。 2. “ ” 两个空格代表了隶属于这个项目的内容,也就是说,看似是输入了两行,其实是连在一起的。 3. 渲染时吧开头的两个字符去掉,然后当段落处理。注意保持缩进。 4. 如果渲染一个项目的同时碰到了另一个项目,那么不需要换行,直接开始渲染。 5. 如果碰到了一个段落或者空行

封装组件el-upload通过v-model (一): 上传单张图片

為{幸葍}努か 提交于 2020-07-29 06:28:29
ElementUI 中的 el-upload 上传图片 我进行了二次封装。(默认大家都是有一定的vue基础的,细节就不过多的讲了) 在项目中我们主要拿到图片或者其他的一些参数 ,我这里是上传后返回的 Guid , 所以上传的动作我就集中处理了, 像 input 的 v-model 直接获取到参数 页面展示代码: <imgeFile v-model="form.license" allclass="passport-uploader" inclass ="passport-uploader-icon passport-s3" onclass="passport passport-pic"> <div class="el-upload__tip" slot="tip">请上传300*420像素不超过500K大小的图片,图片格式支持.PNG或.JPG</div> </imgeFile> 效果: 组件代码: <template> <el-upload :class="allclass" :accept="accept" :action="fileUrl" :show-file-list="false" :on -success="handlePassportSuccess" :before-upload="beforePassportUpload"> <!---上传图片后的展示效果