我是如何编写一个单点登录系统的

我是如何编写一个单点登录系统的

本文将从“后端逻辑”及”前端“两个层面介绍我是如何设计一个单点登录系统的。
除有特殊说明外,本文所描述的所有逻辑均在单点登录系统中(后端、前端授权页)实现,请不要混淆将其用于第三方应用程序中。

对于单点登录系统,目前有很多商业公司都提供成熟的解决方案,如国外的 Okta、Auth0、Duo 和国内公司的 Authing,这些商业化的解决方案都非常成熟,适合有足够预算和对安全性、可用性高的企业使用。
单点登录不仅仅可以用于企业内部对员工身份的鉴权(B2E),也可以用于对客户身份的鉴权(B2C)
我第一次尝试设计单点登录系统是在 2020年年末,当时我第一次有了身份认证的需求,我所设计的第一版单点登录系统后端是基于 Python Flask 的,前端非常简陋,仅仅有一些基本功能:

Read more
搭建基于 Vercel 的短链接服务

搭建基于 Vercel 的短链接服务

基于 Nodejs 和 Express 的无服务器 URL 缩短服务。
您可以使用 Vercel、Netlify 或其他 Serverless 服务部署该项目,对于 Vercel 和 Netlify ,这是完全免费的。

该文档原属老版本 ShortUrl 的配套中文文档,现经修改后作为 Magic-Link 的文档使用,老版本短链项目将不再提供除安全更新以外的更新。
旧版本的数据库结构目前不适用于新版本短链接,新旧数据库结构转换工具即将推出。
本页还提供:English
Github: Github

✨ 最新更新

新版本重构了前端样式和部分前端逻辑,建议此前已经部署过的开发者重新拉取来更新代码,详见 Github Commit

🎉 特点

  • 无服务器
  • 自动防止生成重复的短网址
  • 后台管理页面
    • 添加短网址
    • 短网址列表
    • 删除短网址
    • 自定义地址
  • 配套 API
  • 可进行二次开发
  • 数据库缓存
Read more
记一次西藏之旅

记一次西藏之旅

想说的

大概是因为西藏凉快的原因,我在西安、北京、上海等旅游路线中选择了西藏这一条,这次走的也十分慌忙,大概是第一天中午定下行程,第二天晚上就到机场准备走了。

准备

办理边防证

我的建议是不管你要去的地方需不需要边防证都去办一张,因为如果到了西藏行程有变再想办就不好办了。

西藏需要“边防证”的市县 数据来源: 维基百科

由于西藏的少部分地区位于我国的边境,所以在去这些地区的时候需要办理边防证(去拉萨 话不需要),办理需要在当地的出入境管理局(少部分在政务大厅),建议提前问好免得麻烦。

如果你是跟团旅游,请提前咨询旅游社是否带边防证(旅游社的边防证是整车人合在一起的,不是一人一张),如果已经包含且自己无自由行的意愿,可以不办理。

整个过程如果顺利的话大概不到10分钟就可以完成,期间需要提供的材料有:

  • 户口簿

  • 两张1寸照片(一张贴在边防证上,一张备案留存)(我们这里照片的底色不限制,最好还是用证件照)

  • 身份证原件

这里插一句,有人说不需要带照片,但我的建议是还是带上,大部分地方都需要现场贴上两张照片。

如果带未满16周岁的小朋友去西藏是不需要单独办边防证的,可以写到大人边防证的“随行人员”一栏中。

办理期间可能会让你填写你要去的地方,可以直接填写“西藏地区”。


要准备什么

如果你希望自驾去拉萨,那么本表的部分内容可能不适合你(比如自驾就最好带上氧气瓶)。

  • 氧气

    这个是不需要提前买的,到了西藏之后几乎遍地都有卖,价格大概在 10-50 元不等(氧气的价格差别大是因为有的氧气是在西藏本地充装的,氧气浓度可能不及在低海拔地区生产的高)。

  • 红景天

    红景天是用来预防高原反应的,必须提前至少一周吃才有效果!提前几天或高反发作时再吃是没有任何用的,PS: 这个药(保健品)非常非常非常难吃,如果给小朋友吃可能接受不了,不过小孩到了高原后高反缓解的会很快,也没有必要吃。

    我本人就是很好的例子,我是提前一天吃的,真的什么用也没有,而且这药(保健品)还真不便宜。

    其实还有一种可以代替红景天的就是茶叶,最好是版茶,因为这些茶里面富含茶碱,茶碱可以有效缓解高反。

  • 红霉素软膏

    到了高原后可能会因为干燥的原因流鼻血或者因为吸氧气的时候塑料面罩弄破鼻子,所以红霉素软膏会非常有用。

  • 充电宝

    之所以特别提一句充电宝,是因为高原上的信号非常不好,手机在信号不好且冷的地方耗电就是格外的快,我自己的手机充满电只能非常非常勉强的用完一天(几乎不用的情况下)。

  • 一张移动或电信的电话卡

    (如果你只在城市呆着不去转悠的话这条忽略)这个看似很不起眼,但确实很重要,因为除了拉萨和几个大城市以外,联通的电话卡几乎是没有信号的(大概70%-80%),比如在珠峰景区如果你用联通的卡想买点儿吃的会发信根本没有信号,更别提打电话发短信了,所以提前准备一张移动电信的电话卡非常重要。

  • 防晒霜/喷雾

    西藏地区因为海拔高的原因,紫外线常年非常强,所以做好防晒也是非常重要的(如果使用防晒喷雾,在没有易爆标识的前提下 <100ml 的可以随身携带上飞机,≥ 100 ml 的可以托运)

  • 现金

    可以少带一点,现在西藏大部分地区也会使用支付宝微信,避免手机没信号或者不能用手机支付的情况。

  • 证件

    西藏地区有很多检查站,过这些检查站的时候必须下车核验身份,使用身份证+人脸核验,速度很快。

  • 晕车药

    平常晕不晕建议都带着,下面会细说

Read more
使用土耳其区 Google Domains 低价购买域名

使用土耳其区 Google Domains 低价购买域名

域名注册同 Steam 游戏一样,实行分区定价模式,而 Google Domains 土耳其区的域名定价低的十分离谱且简单。

官方网站:domains.google.com

0.前提条件

同其他国外平台一样,Google Domains 必须使用信用卡支付,需要注意的是:Google Domains 虽然可以使用 Google Pay 支付,但是不能使用 Google 充值卡支付

  • 一张 Mastercard、American Express 或 VISA 的 **信用卡(或借记卡?)**。

  • 可以访问 Google Domains 的网络。

  • 一个 Google 账户

Read more
使用 iCloud+ 自定义你的电子邮件域名

使用 iCloud+ 自定义你的电子邮件域名

序:

之前在找可以供自定义域名的企业邮箱服务的时候无意中发现了苹果的 iCloud Mail 其实是支持自定义域名功能的,不过当时由于鄙人并没有 Apple 设备(现在也没有)和足够的钱来开通 iCloud+,就用了一段时间的 Zoho Mail(非常好用的邮箱)

不过最近发现 Zoho Mail 可能不太够我使用了,因为其免费版不提供 SMTP、POP 等收发信协议,虽说付费版只要 12 USD/用户/年 不过仅支持 Paypal 和国外发行的卡支付,综合考虑下来并没有 iCloud+ 来的实惠。

Read more
我是如何分配云服务域名的

我是如何分配云服务域名的

通常情况下,企业和个人用户在使用云资源时都会考虑绑定自由域名来访问云资源(OSS、Serverless云函数、CDN等),但若云资源数量较多且没有一套规范的域名分配规则,对后期的运维管理及 debug 而言都是一件十分麻烦的事情。

Read more
记录一次网站评论的外链处理
我是如何更换网站域名的

我是如何更换网站域名的

本文大致内容:

  • 为何要更换域名
  • 国别域名的利弊
  • 如何购买一个新域名
  • 更换域名后,需要配置什么
Read more
低成本自制一个安全密钥

低成本自制一个安全密钥

介绍

这是一块来自 Makerdiary 的开发板(?),买它来主要是想用来自制安全密钥。

虽然我已经有一块Yubikey了,但是我还是想整个备份(冗余)。

文档(官方):nRF52840 MDK USB Dongle (makerdiary.com)

购买渠道(官方): How to Buy - nRF52840 MDK USB Dongle (makerdiary.com)

安全密钥构建指北(官方): Google OpenSK 快速入门指南 (makerdiary.com)

看样子官方好像有一个淘宝店,并且官方店卖的甚至比第三方店还便宜,大概便宜 30 块钱左右吧,而且质量肯定也比第三方的店要好很多,所以卖的时候推荐去官方淘宝店买。

当然类似的板子还有 Nordic nRF52840 Dongle,不过这是个外国厂家做的,国内买溢价比较严重(或者说根本买不到),而且 Makerdiary 有带外壳版本的板子,而 Nordic 的板子只能自己 3D 打印外壳 (Github OpenSK 项目里面好像有模型)。

Read more
利用 NewRelic 以非介入方式监控 Nodejs 服务

利用 NewRelic 以非介入方式监控 Nodejs 服务

NewRelic 是一个数据监控平台,该平台提供系统(Windows、Linux、Docker)、代码(PHP、Nodejs、Python等)的监控服务,相关监控探针全部开源(所以平台本身类似于一个数据集中管控平台)。

不过比较可惜的是,他们没有提供私有部署服务,但因为 NewRelic 有在欧盟提供服务的能力,故隐私方面无需过多担心。

NewRelic 提供免费的基本计划,免费计划对于个人甚至中小型企业而言可以说是十分豪华的,当然其也与 Github 合作,所有拥有教育认证的 Github 账户均可以申请开通教育版本计划(说是价值300$一个月,且没有规定最长使用时间)。

本文演示 Nodejs 代码接入,如果你使用的是 Vercel 的 Serverless,则无需看本文,因 Vercel 有官方的 NewRelic 插件,鼠标点一下就好。

Read more