Web
文章平均质量分 84
欢迎关注我的专栏 《Web技术》,web技术是指在互联网上使用的技术,包括网页设计、网站制作、网站开发、网站建设、网站推广、网站优化、网站维护等。
林晓lx
登高现红日,实践出真知!
展开
-
[VS Code扩展]写一个代码片段管理插件(二):功能实现
映射是插入代码片段时,自动替换的变量,他们通过Key-Value形式存储于globalState中。代码片段中通过设置占位符(如${AUTHOR}),在插入代码片段时,将自动替换为全局变量中的值。当自定义映射值未设置或者不可用时,将直接显示变量占位符扩展初始化时,插入了三个常用的自定义映射,你可以自由更改或添加自定义映射。${AUTHOR}: 作者姓名${COMPANY}: 公司名称${MAIL}: 邮箱地址扩展中所有的自定义映射,呈现于“映射表”树视图中。示例:代码片段内容。原创 2024-08-21 12:39:10 · 1059 阅读 · 0 评论 -
[VS Code扩展]写一个代码片段管理插件(一):介绍与界面搭建
功能,但是创建自定义代码片段时,需要写JSON格式的配置,这些JSON文件在用户文件夹下,没有统一的界面管理,而且对于我来说,制表符补全这样的高级功能并不是必需的。VS Code扩展是一个基础功能,通过扩展可以满足软件的所有功能增强,包括内置的核心功能,如文件管理,搜索,Git,调试器,这些都是通过扩展实现的。VS Code这些框架的部分,官方称之为“容器”,整个VS Code由6个容器组成,分别是:活动栏,主边栏,编辑器,辅边栏,面板,状态栏。常用的项目有侧边栏,编辑器,状态栏,面板上的工具栏区域。原创 2024-08-02 23:13:21 · 689 阅读 · 0 评论 -
开源好用的所见即所得(WYSIWYG)编辑器:Editor.js
varaiables.css中包含了大部分的样式变量,更改这些变量可以实现自定义样式。如通过重写 .root样式选择器可以实现自定义的背景色, 重写.ce-popover 改变弹出框样式等。:root {– 完 –原创 2024-03-11 18:37:05 · 1812 阅读 · 0 评论 -
怎样优雅地增删查改(二):扩展身份管理模块
人员之间的关系是单项的,也就是说可以A是B的好友,但B不一定是A的好友。组织(OrganizationUnit)是身份管理模块的核心概念,组织是树形结构,组织之间存在父子关系。Abp为我们实现了一套身份管理模块,此模块包含用户管理、角色管理、组织管理、权限管理等功能。增加人员与组织架构管理接口,如添加/删除人员到组织架构,查询组织架构下的人员,查询未分配组织的人员等;身份管理模块(Identity模块)为通用查询接口的按组织架构查询和按户关系查询提供查询依据。原创 2023-07-07 18:58:04 · 849 阅读 · 0 评论 -
Vue + Volo.Abp 实现OAuth2.0客户端授权模式认证
只需要清除vuex或Cookies中的token即可,可以调用vue-oidc-client的signOut,但只是跳转到配置的登出地址,不会清除token(前提是redirectAfterSignout为true,并设置了post_logout_redirect_uri)创建continue/index.vue,简单的显示登录成功的提示,常用的提示有“登录成功,正在为您继续”,“登录成功,正在为您跳转”等友好提示。(D)客户端收到授权码,附上早先的"重定向URI",向认证服务器申请令牌。原创 2023-07-07 11:30:14 · 1805 阅读 · 0 评论 -
[Asp.Net Core] 网站中的XSS跨站脚本攻击和防范
跨站脚本攻击(Cross Site Scripting),为了不和层叠样式表(Cascading Style Sheets, CSS)的缩写混淆,故将跨站脚本攻击缩写为XSS。恶意攻击者往Web页面里插入恶意Web脚本代码(html、javascript、css等),当用户浏览该页面时,嵌入其中的Web脚本代码会被执行,从而达到恶意攻击用户的特殊目的。源代码出自:https://www.cnblogs.com/OleRookie/p/5970167.html。重新访问,成功触发了XSS弹窗。原创 2023-04-14 18:38:30 · 351 阅读 · 0 评论 -
用Abp实现找回密码和密码强制过期策略
用户找回密码,确切地说是,为了保证用户账号安全,原始密码将不再以明文的方式找回,而是通过短信或者邮件的方式发送一个随机的重置校验码(带校验码的页面连接),用户点击该链接,跳转到重置密码页面,输入新的密码。这个重置校验码是一次性的,用户重置密码后立即失效。用户找回密码是在用户没有登录时进行的,因此需要先校验身份(除用户名+密码外的第二种身份验证方式)。第二种身份验证的前提是绑定了手机号或者邮箱,如果没有绑定,那么只能通过管理员进行原始密码重置。原创 2023-04-14 11:07:32 · 891 阅读 · 0 评论 -
用Abp实现两步验证(Two-Factor Authentication,2FA)登录(三):免登录验证
常用的实现方式是在用户登录成功后,生成一个随机的字符串Token,将此Token保存在用户浏览器的 cookie 中,同时将这个字符串保存在用户的数据库中。当用户再次访问时,如果 cookie 中的字符串和数据库中的字符串相同,则免登录验证通过。rememberClientToken是存储于cookie中的,当用户登出时不需要清空cookie中的rememberClientToken,以便下次登录跳过两步验证。为了安全,Token采用对称加密传输存储,同时参与校验的还有用户Id,以进一步验证数据一致性。原创 2023-04-12 12:09:16 · 1643 阅读 · 0 评论 -
用Abp实现两步验证(Two-Factor Authentication,2FA)登录(二):Vue网页端开发
前端代码的框架采用vue.js + elementUI 这套较为简单的方式实现,以及typescript语法更方便阅读。首先添加全局对象:loginForm: 登录表单对象twoFactorData: 两步验证数据,showTwoFactorSuccess: 是否显示两步验证成功提示。原创 2023-04-12 11:17:24 · 4004 阅读 · 0 评论 -
用Abp实现短信验证码免密登录(三):Vue网页端开发
前端代码的框架采用vue.js + elementUI 这套较为简单的方式实现,以及typescript语法更方便阅读。首先来编写发送验证码函数。注意几个关键的全局变量。原创 2022-10-28 18:39:55 · 560 阅读 · 0 评论 -
用Abp实现短信验证码免密登录(二):改造Abp默认实现
接下来我们重写原Abp的部分实现,来驳接手机号相关业务。原创 2022-10-28 18:17:00 · 1355 阅读 · 0 评论 -
用Abp实现短信验证码免密登录(一):短信校验模块
这是一篇系列博文,我将使用Abp.Zero搭建一套集成手机号免密登录验证与号码绑定功能的用户系统:第三方身份验证在Abp中称之为, 区别于Abp的,这里Auth的全称应为Authorization,即授权。首先来厘清这两个不同的业务在Abp中的实现,我之前写的这篇系列文章中描述的业务,即使用的Abp外部身份授权(ExternalAuth)的相关扩展而实现的。还记得我们实现的WeChatAuthProvider吗?它继承于ExternalAuthProviderApi这个抽象类,实现的微信授权功能。原创 2022-10-28 17:57:50 · 1333 阅读 · 0 评论 -
[学习笔记]Linux + Nginx环境下部署 Web 站点
首先更改server区域内容,root为你的站点根目录,注意不要指定任何index入口,因为这是目录。出现“blockedbyCORSpolicy”,未将网站域名添加至允许跨域访问设置。拷贝dist.zip到目标服务器的文件夹下,这里以~/下载为目标。若出现无法访问,网站报403或者404,请查看nginx日志。等待打包结束,成功后将在根目录下生成dist文件夹。部分错误可参照Troubleshooting解决。将站点文件移动至/var/www/{站点名称}/.........原创 2022-07-21 17:59:13 · 749 阅读 · 0 评论 -
使用 Abp.Zero 搭建第三方登录模块(三):网页端开发
在此之前我们需写一个参数传递对象,为了保留一定的扩展能力,data中我们定义loginExternalForms,已经实现的微信小程序登录,则对应的authProvider值为“WeChatAuthProvider”,providerAccessCode则为生成的Token值。上一章,我们介绍了服务端的开发,这次我们需要调用GetACode,GetToken,分别获取小程序码,和获取当前状态。afterLoginSuccess函数用于登录成功后的逻辑,停止计时器,并跳转页面,本实例仅做弹窗提示。......原创 2022-07-19 15:02:41 · 525 阅读 · 0 评论 -
使用 Abp.Zero 搭建第三方登录模块(二):服务端开发
微信SDK库是针对微信相关 API 进行封装的模块 ,目前开源社区中微信SDK库数量真是太多了,我选了一个比较好用的EasyAbp WeChat库。EasyAbp/Abp.WeChat: Abp 微信 SDK 模块,包含对微信小程序、公众号、企业微信、开放平台、第三方平台等相关接口封装。 (github.com)当然这个库是ABP vNext 框架的,需要稍微改写一下。封装好后我们需要以下几个接口小程序码生成接口: 获取用户OpenId与SessionKey的接口我们先来回顾一下第三方登录在Ab原创 2022-06-24 10:39:32 · 846 阅读 · 0 评论 -
使用 Abp.Zero 搭建第三方登录模块(一):原理篇
第三方登录是基于用户在第三方平台上(如微信,QQ, 百度)已有的账号来快速完成系统的登录、注册-登录等功能。以微信的鉴权为例:假如你的网站有一个扫码登录的功能,会弹出一个由微信提供的二维码页面,你需要用手机上的微信扫码,操作一下,就可以完成登录。如这个链接:微信登录 (qq.com) 嗯。从研发和使用上来说这是最快捷,也是目前大部分站点用的扫码登录方式。但这个是依赖于微信开放平台的功能,微信作为鉴权服务的提供方,有义务监管第三方的网站(你的网站相对于微信就是第三方),因此你需要有企业或组织的营业执照,经过原创 2022-06-23 21:24:46 · 681 阅读 · 0 评论 -
[.Net 6]写一个简单的文件上传控件后端
此项目是配合上一篇文章[Vue]写一个简单的文件上传控件_林 小的博客-CSDN博客这个后端是一个FakeApi,目标是调用文件上传获得File对象。的后端程序,使用.Net 6项目框架搭建,开发前请安装Visual Studio 2022Visual Studio 2022 版本 17.1 发行说明 | Microsoft Docs搭建项目框架新建一个.Net 6 项目,选择Asp.Net Core Web Api 模板首先定义文件模型: [Serializable] .原创 2022-04-13 17:27:24 · 1678 阅读 · 0 评论 -
[Vue]写一个简单的文件上传控件
这篇将介绍如何写一个简单的基于Vue+Element的文件上传控件。控件将具有1. 上传队列的列表,显示文件名称,大小等信息,可以显示上传进度实时刷新2. 取消上传使用Element的uploader控件,上传文件的行为和样式不用自己全部实现,使代码简化。且有足够的扩展性,文件传输请求的代码可以基于axios完全自己重写。我们只用关心核心代码。搭建项目框架首先建立一个空白的项目,引入Element控件库,具体的操作和使用Element控件库请看官方文档:组件 | ..原创 2022-04-13 17:00:56 · 1544 阅读 · 0 评论