ITPub博客

首页 > 数据库 > 数据库开发技术 > 实现系统登录、注册7种方式

实现系统登录、注册7种方式

原创 数据库开发技术 作者:皇子谈技术 时间:2024-07-08 18:01:00 0 删除 编辑

登录、注册再简单不过的功能了,但这两步是支撑整个账号体系关键步骤。

大家好,我是皇子。

登录和注册,它们为用户提供了唯一性、可管理性和同步性的服务。

注册是用户获取账号的过程,登录则是用户验证身份的过程。

两者的设计和实现都需要考虑用户体验和系统的安全性。


现在的登录注册方式可谓已经变得多样化,以适应不同的用户群体,下面我们尽可能罗列出常见的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、设计邀请码生成机制:

  • 决定邀请码的格式,比如纯数字、字母数字混合或包含特殊字符。
  • 确定邀请码的有效期和使用次数限制。
  • 实现随机生成邀请码的算法,确保邀请码的唯一性和安全性。

2、数据库设计:

  • 在数据库中创建一个表或字段来存储邀请码及其状态(如未使用、已使用、过期等)。
  • 可能还需要存储发放邀请码的用户信息和被邀请的用户信息,以便跟踪和分析。

3、 前端界面集成:

在注册表单中添加一个输入邀请码的字段。设计用户友好的提示,说明邀请码的用途和获取方式。

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

统一登录门户

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

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

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


以上,觉得有用,谢谢你的赞、转发和在看~

推荐阅读:

B站、小红书崩了,阿里云来背锅

摩拳擦掌,秋招提前批已至

小米二面,面试官严肃到黑脸

最详细、最全面地学习23中设计模式,架构师必备的思维工具箱

详细、简单地学习这6种架构设计原则,再学设计模式也是 So Easy的事

原文作者:皇子谈技术;如有侵权,请联系管理员删除。

请登录后发表评论 登录
全部评论

注册时间:2023-12-21

  • 博文量
    113
  • 访问量
    56509