注册/登录 实现过程详解

一、前言

    一般的平台基本上都有用户管理这一部分,虽然我们都是各个平台的用户,对于一般的流程有所了解,看似简单,但是真正实现的过程中确遇到了很多的困难。

二、实现过程图解

注册:


看似过程似乎很简单但是这过程还有很多需要考虑的因素,采取邮箱发送验证码的方式实现验证:

  1. 验证码如何产生:
        通常我们的验证码是0-9中的六个或者四个数字,因此需要循环产生四个或者六个随机数字。python版可参考:使用Flask发送邮件
  2. 验证码保存到哪里?如何设置验证码的有效期?
        验证码和用户邮箱是需要绑定存储到数据库用来后端验证的,而验证码是有有效期的,因此采用Redis来存储更为方便,在set数据时直接设置数据的有效期。当然也可以通过MySQL来实现。只是稍微繁琐些,但注册成功后的用户数据一般都是存储在MySQL中。
  3. 验证成功后,为了保证安全,用户名和密码等需要加密后存储到数据库
        那么如何加密呢?加密算法有很多(对称、非对称、线性散列算法等),而用户的密码等信息是对安全度要求很高的信息,因此采用了SHA-1(线性散列加密的一种)加密。

登录:

  1. 通常有些接口的访问都是有权限的,那么如何进行验证呢?
        验证方式通常有cookie、session、token、JWT等,和加密方式一样,需要根据不同情况进行选择,在前后端分离中使用了JWT(Json Web Token),JWT使用公钥签名生成并保存到用户本地,减少了查询服务器的压力。
  2. 既然前端访问接口时需要携带jwt,那么jwt字符串存储在哪里呢?
    因为每次访问某些接口时都需要携带jwt字符串,那么存储在哪里也是个问题,可以考虑的方式包括:cookie等(可根据场景选择),我选择的方式是localStrong方式来存储。

注: 各种加密算法的选择与对比、验证方式选择、jwt存储方式对比等仍需另外写博客完善。

  
  
Email : Beyonderwei@Gmail.com
Website : http://beyonderwei.com
  
WeChat:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值