公众号关注 “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

一个功能超全的「登录认证」神器!相关推荐

  1. 这可能是史上功能最全的Java权限认证框架!

    点击关注公众号,Java干货及时送达 今天给大家推荐的这个开源项目超级棒,可能是史上功能最全的 Java 权限认证框架! 这个开源项目就是:sa-token . Sa-Token是什么? sa-tok ...

  2. 这可能是史上功能最全的 Java 权限认证框架!

    点击关注公众号,回复"1024"获取2TB学习资源! 今天给大家推荐的这个开源项目超级棒,可能是史上功能最全的 Java 权限认证框架! Sa-Token 介绍 Sa-Token是 ...

  3. 【spinning up】2.2 功能超全的强化学习画图脚本

    功能超全的强化学习画图脚本 文章目录 功能超全的强化学习画图脚本 原始画图效果: 加了九大功能: 最终画图效果: 多个子图绘制和图例legend位置调整: 代码链接,有详细注释: 关于强化学习绘图的其 ...

  4. 一个功能较全的轮播图插件(含详细介绍)

    今天给大家分享一个功能较全的轮播图插件,废话不多说,直接上插件 ;(function($){"use strict";$.fn.extend({banner:function(op ...

  5. ios 分享一个功能很全的视频播放器

    SJVideoPlayer 基于AVPlayer. 极速初始化, 不阻塞主线程. 这个应该是目前基于AVPlayer的播放器中, 功能最全的一个吧. _ 使用 pod 'SJVideoPlayer' ...

  6. 哪有那么多「能力问题」,在你牛到一定程度前,全是「态度问题」

    导读:职场上有句话,「ta这是能力问题,工作态度还是好的」.通常做得不够好的时候,「能力问题」似乎就比较容易得到谅解. 我承认,时代.机缘.天赋.性格.出身.早年教育,等等这些我们无法全然掌控的因素, ...

  7. 小红帽linux各功能中英,小红帽「中英文对照」

    小红帽「中英文对照」 小红帽 从前有个可爱的小姑娘,谁见了都喜欢,但最喜欢她的是她的奶奶,简直是她要什么就给她什么.一次,奶奶送给小姑娘一顶用丝绒做的小红帽,戴在她的头上正好合适.从此,姑娘再也不愿意 ...

  8. iwcコピー時計の全く新しい「La Musicale」音楽の腕時計

    7800 Classique 「La Musicale」音楽の腕時計の初めては見得を切て.発熱して協議を引いて.そして多い名誉を収穫しました. iwcコピー時計この芸術の傑作は特許の音楽装置のそれを搭 ...

  9. 在家远程办公效率低?那你一定要收好这个「在家办公」神器!

    相信大家都已经收到国务院延长春节假期的消息,接下来,在家远程办公可能将会持续一段时间. 但是问题来了.远程办公不是人在电脑前就当坐班了,相反,对于沟通效率,文件协作,以及信息安全都有着极高的要求.有着 ...

最新文章

  1. 从Java代码到Java堆理解和优化您的应用程序的内存使用
  2. Kotlin系列之类和属性
  3. 第1章 ZLG7290B 简介
  4. GDCM:把DICOM文件存在vector<char>里面的测试程序
  5. 不可摸数http://acm.hdu.edu.cn/showproblem.php?pid=1999
  6. Codeforces Round #726 (Div. 2) E2. Erase and Extend (Hard Version) 贪心
  7. SQL Server 2008 R2下载地址
  8. Exchange 2007 474 问题解决方法
  9. python之模块copy_reg(在python3中为copyreg,功能基本不变)
  10. 父与子的编程之旅 python 3_Python!帮我做一下选择呗:父与子的编程之旅 学习笔记(5) 2018-07-10...
  11. shl归纳推理测试题库_shl归纳推理测试答案
  12. 读《Unix编程艺术》笔记
  13. 证书制作,各个环节的原理以及推送证书制作,和如何为推送服务器提供证书
  14. 如何使用CentOS linux来搭建u-email邮件服务器(AIIP全国技能大赛企业联合教程)
  15. 数据挖掘工具主要有哪几种?
  16. LeetCode - 罗马数字转整型
  17. exsi rh2288hv5 驱动_华为RH2288H V5服务器windows 2012阵列卡驱动
  18. 索骥馆-编程语言之《Android内核剖析》扫描版[PDF]
  19. 【数字IC基础】IC(Integrated Circuit,集成电路)常用缩写
  20. 听趣拍云产品经理剖析视频基础知识

热门文章

  1. JPA实体中数据库生成ID的最终指南1
  2. javascript 图片特效算法
  3. 关于盗墓笔记的那些事
  4. 利用jsoup解析网站网页
  5. 初学者之蚂蚁蜜蜂分类报错记录
  6. java立方根怎么打_计算机上怎么打立方根
  7. 蓝鲸作业流程编排--参数使用
  8. 【ESP32 S3开发】在Arduino IDE中使用PSRAM
  9. 计算机专业知识面狭窄,软件学院“计算机基础”实验教学改革探索
  10. 04、Unity 5--全局光照技术