简单来说就是需要用户提供认证信息,好认证使用者就是用户,而不是随随便便的其他人,以防资源被随便获取。一般用户需要提供的认证信息有用户名,用户密码。
HTTP 的认证方式有,
-
BASIC 认证
由于安全,且只能认证,无法认证注销(类似于只能登录,不能退出)等问题,导致 BASIC 用来要求较高的场景下是无力的。 -
DIGEST 认证
DIGEST 基于 BASIC 做了改进,不会明文传输用户和密码,采用质询码和响应码进行交换认证,但这种方式仍有可能被假冒,所以相比 HTTPS 来说还是不安全。 -
SSL 客户端认证
SSL 客户端认证利用的就是 HTTPS 客户端证书完成认证,可以确保不会被人假冒身份。也就是说,在使用的客户端(这里认为就是电脑设备这样的终端)上会要求实现安装客户端证书,在通信前,服务端会验证请求方的客户端证书,正确后方可继续通信。 -
FormBase 认证
基于表单的认证其实就是我们日常接触对多的登录认证方式,输入用户名和密码完成登录认证。客户端发送加密后的登录信息给服务端认证,认证成功就算登录成功了。鉴于 BASIC, DIGEST 认证的缺陷,SSL 客户端认证又需要费用开销,FormBase 认证相对来说更易于被广泛使用。
这种方式认证之后,通常客户端和服务端之间会借助 cookie 来管理会话,也就是用 cookie 识别用户,对移动端来说其实就是业务层面的 token,我们可以用 token 进行缓存登录,或者当 token 失效后,要求用户重新登录,所以其实如果被别人盗用了 token,那么就能访问服务请求。在缓存 token 时要注意数据的加密。 -
等等
网友评论