一个功能超全的「登录认证」神器!
Posted GitHubDaily
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一个功能超全的「登录认证」神器!相关的知识,希望对你有一定的参考价值。
公众号关注 “GitHubDaily”
设为 “星标”,每天带你逛 GitHub!
大家好,我是小 G。
用户身份认证与管理,可以说是每个开发者在搭建项目时,难以规避的主要业务模块。因涉及到信息验证、数据安全、权限管理等多个开发环节,使得该模块在项目被称为地基般的存在。
在我早期开发项目时,技术圈内没有比较成熟的开发框架与第三方 SDK,因此时常需要手写一整套用户登录认证系统。
从第一步的信息录入正则验证、数据加密传输存储、access token & session 生命周期管理、权限验证。最后,兴许还要对接第三方平台,授权登录。
整个开发过程,加上中间的服务器 — 客户端联调测试环节,最终执行下来,实在耗时不菲,更别说后面的项目迭代与功能维护了。
虽说今时已不同往日,多种开发框架已内置了注册登录的脚手架生成功能,以及第三方 SDK 的扩展支持。
但是,在此其中,大部分只是做了简单的流程封装处理,还是没有真正从使用者的需求出发,一步到位搞定「用户身份认证与管理」,这个在开发中最为核心的环节。
随着技术的更新与发展,近几年,市面上又开始流行人脸识别、指纹识别、图形解锁等不同登录验证方式。如此种种,进一步加大开发者的工作量。
我理想中的「登录认证」集成工具,应该符合便捷、安全、可扩展性强、学习成本低、功能齐全等几项条件。
看到此处,兴许有人会认为是痴人说梦。质量、效率、成本这个黄金铁三角,怎么可能做到面面俱到。
不过,就在前几天周末,让我无意间发现了一款可完美契合上述条件的开发神器:Authing。
今天就跟大家好好聊聊,这款令我爱不释手的神器,究竟有多强大。
Authing 是一家专注于 IDaaS 的身份验证服务商,从实际功能上来说,它已突破了普通开发工具的定义,成为现代项目开发中,一套可覆盖多平台、多场景使用的「用户身份验证」标准解决方案。
在线体验:https://signin.authing.cn/p/bd884
强悍无比的 Guard
Authing 最令人称道的一点,是它提供了一套「即取即用」的登录表单工具:Guard。
当你在项目中安装指定的扩展包后,即可在后台通过可视化界面,快速设置各项登录认证信息。
比如,开发者可根据自身需求,快速设置账号登录方式、密码找回、第三方接入平台、登录页面背景、品牌化 Logo 展示等多种属性。
短短几分钟内,快速创建一个可嵌入登录表单,并将其应用于多种场景。
当表单创建成功后,你还可以一键开启多种不同形式的多因素认证。比如常见的短信与邮箱验证、人脸与指纹识别等,很是方便。
Guard 为开发者屏蔽了很多底层认证的实现细节,通过可视化界面与简单的代码配置,甚至还能实现诸如单点登录 SSO、自建 App 扫码认证等高级功能。
去除一些 UI 设计、界面实现等工作,让我们可以更加专注于产品业务本身。
集成方便、开箱即用
为了让每个开发者都可以轻松上手,Authing 针对不同开发环境与平台,单独封装了独立的 SDK,开发者通过现有的 1000 个业务系统接口,无需开发,通过简单配置,即可对接整套方案。
平台还提供了数十个 API 开放接口,协助用于项目登录信息与组织管理、用户权限分配等场景。
如果要列举当下接入最为频繁的第三方登录平台,微信应当首屈一指。
虽说目前在 GitHub 上存在不少微信登录的开源 SDK,可惜大多做的都没有 Authing 全面。
从微信网页授权、小程序扫码,到公众号扫码关注、小程序调用授权,所有的登录模式应有尽有。
开发者需要做的,就是在后台填入对应的微信 AppID、AppSecret、令牌等验证信息,即可快速完成对接。
对接成功后,便可使用 Authing 平台所提供的接口,判断用户微信登录状态,获取用户信息。
接口的定义简单且直观,作为一名后端开发者,用着很是舒服。
除微信外,Authing 还支持微博、GitHub、Twitter、支付宝等国内外多家主流平台的第三方授权登录方式。
为了让开发者对登录认证这一环节的理解更加深入,平台技术团队甚至还编写了一系列中文文档与教程,详细解释身份认证的相关技术知识。
里面包括单点登录、认证 & 授权、OAuth 2.0 协议、扫码登录原理解析等内容,可以说是非常贴心了。
CIAM 为王!
过去几十年,互联网上大部分软件项目采用了 IAM(Identity and Access Managetment)模式,即「身份和访问管理」作为登录系统的实现原理。
简单来说,就是项目的登录认证系统,没有进行明显的用户身份划分,不管你是企业员工,还是某个社交平台的普通用户,其背后的登录注册逻辑都是一样的,这就间接导致一些数据没有得到很好的利用。
面对当下信息大爆炸的互联网时代,IAM 这种模式显然已不太适合。因此,自 2015 年开始,便有人开始推行 CIAM(Customer Identity & Access Management)模式,即以顾客为核心的身份管理方案。
在该模式下,开发者可以捕捉用户在不同场景下的数据变动,以便对产品功能进行调整,提升用户留存与粘性。必要时,还能对原本的身份认证逻辑进行改动,以适应互联网的发展速度。
此时,整套用户身份认证系统的灵活性与可扩展性,将会面临真正挑战。
但在 Authing 中,我们可以利用平台提供的 Webhook 功能,轻松监听用户的登录、认证、权限状态,在指定事件被触发时,及时做出响应。
开发者需要做的,就是在 Authing 后台配置好 Webhook 的 HTTP URL,当事件被触发时,平台会给该 URL 发送一个 POST 请求。请求收到后,即可做出相应处理。
如果想采用更为灵活的事件调用机制,也可以通过 Authing Pipeline 来实现。
简单来说,Authing Pipeline 是一段自定义的 javascript 代码,支持在云端运行。
每个 Pipeline 可作为一组函数,互相传递函数数据。在封装为具体功能模块后,可以很方便的嵌套到各个登录认证环节中使用,让项目开发流程像工业流水线一般高效运转与管理。
通过 Pipeline 所提供的功能,开发者能够实现诸如注册 IP 白名单管理、用户权限自动分配、登录 IP 异常通知、自定义用户 token 字段等功能。
安全感爆棚
对于一些云服务工具来说,开发者们更看重的往往是其安全性。用户身份认证会涉及到项目的核心数据,其重要性更是不言而喻。
为此,我专门看了下平台关于信息安全这块的处理工作,发现他们做的还是十分到位的。
首先,Authing 支持自部署,有条件的开发者,可选择部署到私有云服务器。在前端、中台、后端等不同位置,还提供了全链路安全防护举措。通过 HTTPS 进行安全传输,再利用 KMS 对数据与字段进行加密解密。
不仅如此,平台还能针对用户行为、管理员行为及应用访问情况,进行可视化安全审计,协助开发者完成风险控制。
在用户使用层面,Authing 也提供密码强度检测机制,当用户设置一些过于简单的密码时,会立即给出风险提示。另外还有密码轮换策略,在指定周期内,引导用户定期对密码进行更新。
如果你对平台的密码加密算法不放心,也可以随时选择替换为自己的算法,灵活且自由。
不过像这种能够服务可口可乐、招商银行、元气森林等大企的云平台。信息安全方面,肯定是有着充分保障的。
写在最后
电影《功夫》中,火云邪神曾说过这么一句话,"天下武功,无坚不摧,唯快不破"。
将其应用到 Authing 这个身份认证平台上,"无坚不摧" 可代表其强悍的信息安全防御机制,"唯快不破" 则在 Guard 这套低代码「身份认证」搭建方案上得到了充分体现。
手握如此一柄利器,在开发项目时,各种与用户身份权限挂钩的业务需求,那不是信手拈来。
当你有下面这些需求时,尝试用 Authing 来实现,或许能给到你直呼「过瘾」的使用体验:
快速搭建一个拥有注册登录功能的新项目;
对接微信、GitHub 等第三方平台;
用户访问敏感数据时执行多重身份验证;
禁用恶意 IP,防止 DDOS 手段攻破密码;
使用 OAuth 2.0 协议保证 API 的安全;
让用户使用一次性的手机验证码或邮箱验证码登录;
企业内部应用的登录权限分配与管理;
密码在其它平台泄露时,自动发送邮件提醒。
一步到位,解决跟「用户身份认证与管理」相关的所有需求,是 Authing 于我而言,最大的魅力所在。
对该项目感兴趣的同学,可访问下方地址,或点击阅读原文,快速体验。
在线体验:https://signin.authing.cn/p/bd884
以上是关于一个功能超全的「登录认证」神器!的主要内容,如果未能解决你的问题,请参考以下文章