问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

系统登录注册的7种方式及其实现原理

创作时间:
作者:
@小白创作中心

系统登录注册的7种方式及其实现原理

引用
1
来源
1.
http://m.blog.itpub.net/70041326/viewspace-3039067/

登录、注册是支撑整个账号体系的关键步骤。它们为用户提供了唯一性、可管理性和同步性的服务。注册是用户获取账号的过程,登录则是用户验证身份的过程。两者的设计和实现都需要考虑用户体验和系统的安全性。

现在的登录注册方式已经变得多样化,以适应不同的用户群体。下面我们罗列出常见的7种登录、注册方式:

自建账户系统

  • 邮箱注册登录:用户通过提供电子邮件地址进行注册,通常需要验证邮件来确认所有权。

在Go语言中,你可以使用net/smtp包来实现从个人邮箱向用户注册邮箱发送邮件的功能:

package main
import (
    "fmt"
    "net/smtp"
)
func main() {
    // 邮件服务器配置
    auth := smtp.PlainAuth("", "your-email@example.com", "your-password", "smtp.example.com")
    // 邮件内容
    from := "your-email@example.com"
    to := []string{"recipient@example.com"}
    subject := "Subject: 注册欢迎邮件\n"
    body := "尊敬的用户,欢迎加入我们的平台...\n"
    // 构造邮件消息
    msg := []byte(subject + "\r\n" + body)
    // 发送邮件
    err := smtp.SendMail("smtp.example.com:587", auth, from, to, msg)
    if err != nil {
        fmt.Println("Error sending email:", err)
        return
    }
    fmt.Println("邮件已成功发送到 ", to[0])
}
  1. 邮件服务器配置:使用smtp.PlainAuth函数设置SMTP服务器的身份验证信息。这里的参数分别是:空字符串(不使用特定的域名)、发件人的邮箱地址、邮箱密码(授权码)、SMTP服务器地址。
  2. 邮件内容:定义发件人、收件人列表、邮件主题和正文。注意,邮件主题和正文之间需要用\r\n换行符隔开。
  3. 构造邮件消息:将邮件主题和正文合并成一个字节切片msg
  4. 发送邮件:调用smtp.SendMail函数发送邮件。这里的参数是SMTP服务器地址和端口号、身份验证信息、发件人地址、收件人列表和邮件内容。
  • 手机号注册登录:用户使用手机号码注册,通过短信验证码进行身份验证。其中的短信服务可以在华为云、阿里云、腾讯云等,它们提供短信服务API。
  • 用户名注册登录:用户创建一个唯一的用户名和密码,企业中直接使用用户名注册登录的应用中逐渐减少,个人网站还是很常见的,毕竟简单,有付费就好。

目前国内互联网大厂积极响应国家政策,在注册阶段都会要求进行实名认证机制。

所以以上的注册登录中,手机号注册登录成为了最流行的方式之一,并且这确实能提高反欺诈与安全和用户体验。

  1. 反欺诈与安全:有助于防止机器人或恶意用户创建大量虚假账户,减少垃圾信息和网络诈骗。通过手机号绑定账户,一旦发生异常活动,可以迅速锁定并采取措施。
  2. 用户体验:通过手机号验证,可以提供更便捷的找回密码、二次验证等功能,增强账户安全性。同时,手机号码可以作为一种联系手段,方便推送重要通知。

第三方授权

第三方授权注册登录目前大多数采用的是OAuth2、OpenID Connect协议,以基于OAuth2.0协议标准构建的微信OAuth2.0授权登录系统为例:

  1. 获取第三方授权扫码地址,包含应用在第三方注册的APPID,回调地址(域名已经在第三方中添加白名单验证)、授权范围等。
  2. 第三方请求用户登录授权,用户确认授权登录。
  3. 根据重定向到应用的地址链接中获取第三方的临时票据(code)。
  4. 应用后台根据第三方的临时票据(code)向第三方请求获取到访问第三方所需的access_token、refresh_token和过期时间。
  5. 根据已经绑定了授权范围的access_token获取用户在第三方上的个人信息,并完成注册和登录。

其中第三方授权注册登录可以分为两大类。

  • 社交媒体登录:如使用微信、QQ、微博、Facebook、Google、Apple ID等社交媒体账户直接通过登录。
  • 政府机构系统登录:如健康码、各大省份的X省事(粤省事)、深圳公安等。

匿名登录

对于不需要用户个人详细信息的应用,可以提供游客模式,允许用户匿名浏览或使用有限功能。

别看匿名登录好像啥事也不用做,但实际上需要做好匿名登录下的数据隔离、静态数据或者默认体验账号的问题,而匿名登录可以大大提升用户体验。

如:

  • 微信小程序的审核如果有匿名登录,那审核通过通过率将会大大增加,不至于经常被打回。
  • 另外在用户没有注册登录的情况下,让用户更直接的操作和体验到系统的功能。

生物特征认证

如指纹、面部识别、虹膜扫描等,主要用于移动设备上的快速注册和登录,主要流程为:

  1. 收集生物特征:当你决定注册时,系统会引导你通过摄像头捕捉你的面部图像,或是通过传感器读取你的指纹或虹膜图案。
  2. 创建模板:系统不会直接存储你的完整生物特征,而是将其转化为一组独特的数字代码(模板),这个模板包含了识别你所需的关键特征。
  3. 加密存储:这个模板会被加密并安全地保存在数据库中,加密的算法一般也都会采用更高级的散列算法(如:SHA256等),然后只有在需要验证身份时才会被调用。
  4. 关联账户:你的生物特征模板与你的账户信息相连接,这样每次登录时,系统就会比对这个模板,确认是你本人。
  5. 登录验证:下次登录时,系统再次获取你的生物特征,与存储的模板进行对比。如果匹配成功,你就顺利登录了。

多因素认证(MFA)

结合两种或更多类型的认证方法,如密码加上短信验证码、硬件令牌或生物特征,增加安全性。

尤其是QQ邮箱,如果在异地登录的情况下,第一次登录,会直接上三重曲:账号密码登录、人机校验码、短信验证码

邀请码注册

通常在产品早期或特定活动中使用,如:刚发布或者升级,用户需要通过邀请码才能注册,这有助于控制增长速度或限定目标受众。

邀请码注册涉及到四个关键步骤:

  1. 设计邀请码生成机制
  • 决定邀请码的格式,比如纯数字、字母数字混合或包含特殊字符。
  • 确定邀请码的有效期和使用次数限制。
  • 实现随机生成邀请码的算法,确保邀请码的唯一性和安全性。
  1. 数据库设计
  • 在数据库中创建一个表或字段来存储邀请码及其状态(如未使用、已使用、过期等)。
  • 可能还需要存储发放邀请码的用户信息和被邀请的用户信息,以便跟踪和分析。
  1. 前端界面集成:在注册表单中添加一个输入邀请码的字段。设计用户友好的提示,说明邀请码的用途和获取方式。

  2. 后端逻辑处理:实现后端逻辑来验证用户输入的邀请码是否有效,检查其状态和使用次数。如果邀请码有效,允许用户继续注册流程;如果无效,则给出错误信息。

统一登录门户

提供多种登录选项的单一入口,让用户选择最方便的方式登录,很多公司也都会有一个统一的登录门户来进行登录的。

尽管前面说用户名和密码看起来很少被使用了,但是在用户完成授权登录或者实名认证的情况下,还是会放在这个统一登录门户的。

毕竟浏览器和手机都有记住用户名和密码的功能,用起来还是很香的。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号