聊聊身份认证那些事(基于gin框架的认证实战 上)

本文介绍四种基本的认证方式:Basic、Digest、OAuth和Bearer,并通过JWTToken详解Bearer认证原理。

开篇

身份认证系列进行到现在,大部分内容都是偏理论的,今天我们就来点轻松的,直接上实战,纸上得来终觉浅,绝知此事要躬行呀。

正如本篇题目所示,我们来看看如何通过go语言的gin web框架来实现一个简单的认证功能,不过就算你没用过gin也没关系,把代码部分当做伪代码来看就行,毕竟认证功能是语言无关的嘛,先把内功打深厚,然后再学招式就简单得多了。

四种基本的认证方式

认证是用来验证某个用户是否具有访问系统的权限。如果认证通过,该用户就可以访问系统,从而创建、修改、删除、查询平台支持的资源。认证需要你证明你是谁,是进入系统的第一道关卡,认证之后才是授权。

常见的认证方式有四种,分别是 Basic、Digest、OAuth 和 Bearer。

Basic

Basic 认证(基础认证),是最简单的认证方式。它简单地将用户名:密码进行 base64 编码后,放到 HTTP Authorization Header 中。HTTP 请求到达后端服务后,后端服务会解析出 Authorization Header 中的 base64 字符串,解码获取用户名和密码,并将用户名和密码跟数据库中记录的值进行比较,如果匹配则认证通过。例如:

$ basic=`echo -n 'admin:Admin@2021'|base64`
$ curl -XPOST -H"Authorization: Basic ${basic}" http://127.0.0.1:8080/login

通过 base64 编码,可以将密码以非明文的方式传输,增加一定的安全性。但是,base64 不是加密技术,入侵者仍然可以截获 base64 字符串,并反编码获取用户名和密码。另外,即使 Basic 认证中密码被加密,入侵者仍可通过加密后的用户名和密码进行重放攻击。

所以,Basic 认证虽然简单,但极不安全。使用 Basic 认证的唯一方式就是将它和 SSL 配合使用,来确保整个认证过程是安全的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值