我们提供安全,免费的手游软件下载!
线上应用的用户身份鉴权是保障数据安全的重要环节。一般情况下,线上应用需要对用户身份进行鉴权,通过身份校验的用户会得到一个access_token,这个凭证是全局唯一接口调用凭据,调用应用的各接口时都需使用access_token。本文将探讨一些常见的鉴权方式以及相关的安全要求。
在进行用户身份鉴权时,access_token的存储至少要保留512个字符空间,并且其有效期一般为2个小时,需定时刷新。用户需要妥善保存access_token,一般存放在前端的存储空间———Cookie中。
常见的鉴权方式包括账号+密码、账号+短信验证码和第三方渠道鉴权(如微信)。其中,账号+密码的鉴权方式简单直接,通过对比数据库中的账号密码来发放token。而账号+短信验证码的流程相对复杂,需要用户手机接收短信验证码并发送至服务器进行验证后发放token。另外,第三方渠道鉴权中,本文将重点讨论与加密方式结合的微信鉴权。
在微信鉴权中,每个微信用户都会有一个微信ID——appid。通常情况下,会把用户的appid作为一个唯一标识进行存储,进行鉴权。然而,从安全角度来看,这种方式并不安全,容易受到黑客的伪造攻击。因此,需要结合加密方式进行鉴权。
调用流程包括前端传输openid给后端,后端调用微信公众平台的“获取用户基本信息”的接口进行鉴别,然后对openid进行加密返回给前端。前端在调用api时,需要将加密后的openid传给后端,后端进行解密校验操作。由于服务器同时负责加密和解密,需要采用对称加密算法,密钥安全存储在服务器里。只要openid能解密成功,就意味着是自己系统加密的,只要密钥不泄露,别人无法伪造。
虽然本文讨论的方案存在一些局限性,比如token失效后用户再次获取token的问题,但通过加密做鉴权的思路为用户身份鉴权提供了一些可能性。当然,如果这个方案无法实现,可以转换思路,通过其他方式来确保请求是从自己的渠道发过来的,比如在前端集成JS代码做签名,然后后台通过校验签名来确保请求的合法性。
最后,感兴趣的读者可以参考以下链接了解更多信息: https://www.cnblogs.com/xjnotxj/p/9289528.html
调用流程图演示:
相关资讯
热门资讯