常见的API认证有哪些?了解这些轻松应对各种场景!

吉云

今天来跟大家聊聊我最近做的一个事儿,关于API认证的,这玩意儿说起来挺重要的,现在啥都联网,数据传来传去都得靠API,所以保证这过程的安全,就成咱这帮搞技术的人头疼的事儿。

我是咋接触到这个东西的?得从我接手的一个项目说起,当时需要对接好几个外部的服务,那些服务商都要求做认证,说是为保证数据的安全。我就开始我的摸索之路,第一步总得知道都有哪些认证方式。

我先是翻翻网上的各种资料,发现这认证的方式还真不少,像啥HTTP Basic Authentication,看起来挺简单的,就是用户名密码那一套,但是我一琢磨,这不就是把密码啥的直接传过去吗?不太安全,感觉有点过时,心里有点犯嘀咕。

常见的API认证有哪些?了解这些轻松应对各种场景!

还有一种方式是API Key认证,这玩意看起来像把特别的钥匙,不同的应用对应不同的钥匙。我还试一下,把我的应用程序注册一下,拿到一个Key,每次请求的时候带着它,就像是拿钥匙开门,感觉比Basic Authentication要安全一些,用起来也比较方便,心里稍微踏实一些。

  • 继续研究,我又看到OAuth2,这东西看起来比较复杂,能让用户授权第三方应用访问他们的资源,还不用给密码。
  • 还有什么JWT token,听起来就高级,实际上就是一种很流行的凭证技术,用来认证用户身份的。

除这些常见的,我还琢磨一些别的办法,比如说用短信验证码,这玩意现在用的也挺多的,登录、注册、找回密码啥的都能用,我觉得也挺安全的,就是每次都得等短信,有时候还收不到,有点麻烦。

常见的API认证有哪些?了解这些轻松应对各种场景!

实践阶段

然后我就开始动手实践,我选API Key和短信验证码这两种方式,毕竟这俩看起来最靠谱,也比较适合我的项目。先是找个提供短信验证码服务的平台,接入他们的API,测试一下,发送验证码、验证啥的都挺顺利,就是费用得控制一下,毕竟发短信也得花钱的。

搞定短信验证码,接下来就是API Key。我设计一个简单的流程,用户注册的时候生成一个唯一的Key给他们,然后让他们把Key保存在客户端,每次请求的时候放在Header里。我在服务端这边,就写个拦截器,每次请求过来我都先检查一下有没有带Key,Key对不对,都对上才放行,不对就直接打回去。

这么一套下来,感觉认证这块儿就差不多,我也算是摸着石头过河,把这个事儿给搞定。这中间也遇到不少坑,比如说一开始没考虑到Key的安全性,后来又加些加密啥的。还有就是性能问题,每次请求都要校验,对性能还是有点影响的,后来又加些缓存机制,才算是搞得差不多。

这回的实践还算成功,虽然过程有点曲折,但也学到不少东西。以后再遇到类似的事儿,我也算是有经验,哈哈。

免责声明:由于无法甄别是否为投稿用户创作以及文章的准确性,本站尊重并保护知识产权,根据《信息网络传播权保护条例》,如我们转载的作品侵犯了您的权利,请您通知我们,请将本侵权页面网址发送邮件到qingge@88.com,深感抱歉,我们会做删除处理。

目录[+]