今日任务
今天的感觉是看代码很顺畅很多都是之前的形式很类似
今日内容(auth.go)
Register(注册)函数
因为确实和昨天的内容形式很像没什么好讲的,如有疑惑可以看day7的内容
bcrypt加密
用户输入密码后,如果效验检查正确,那么会进行哈希加密
最终储存在数据库的密码是加密后的
不然管理员可以直接看到每个人的密码,或者如果有黑客侵入了数据库看到的就是完整的用户名+明文密码了
那么这里bcrypt加密有三个核心的特性
盐值
同一个密码会生成不同的加密结果
成本因子
这个相当于加密的次数,为了安全会反复加密,迭代加密很多次
慢哈希
降低每一次输入密码算哈希并匹配的速度,防止黑客暴力破解,
比如一个密码其实可能0.000001秒(对用户来说登录时瞬间感觉不到)就可以判断对不对错不错,于是黑客可以在一秒种试上亿次密码
但是如果一个密码需要0.1秒才能登录(对用户来说其实也差不多也很快),但是对于黑客的破解速度就大幅度减慢了,一秒只能试10个密码,破解的成本时间大大增加
Login(登录)函数
JWT token
用户登录后会生成一个token(类似身份证),
相当于身份证,或者通行证(临时的),可以避免重新去数据库匹配这样耗时的操作。
GetCurrentUser函数
手拿token时取自己的用户信息
注意这里ok是一种返回类型,这里代表是否取到信息,