评论

盘点应用开发中常见的登录方式

本文主要盘点在WEB、APP、小程序开发中常见的登录方式,便于各位开发者参考设计。

作为开发者,我们在开发应用时,无论是WEB、APP、PC客户端还是小程序,身份登录的实现基本是第一个也是最重要的。

目前常见的基础登录方式有:

  • 手机号登录:分验证码登录和无感快速登录两种,目前国内手机号强制实名认证,因此在国内应用中普遍使用。
  • 邮箱验证码登录:给邮箱发送验证码,来确认用户对邮箱的所有权,实现简单且无费用,在一些国际化或小型网站中常见。
  • 账号密码登录:最基础且常见的,开发者也可以关联其他身份验证要素(手机号、邮箱),实现要素合一以及忘记密码找回。
  • 安全令牌登录:比较少见,用户在注册时获得一个虚拟的时间令牌(需要安装令牌APP或者分发物理令牌),每次登录时只输入安全令牌数字(或PIN密码+令牌数字)完成,一般不会用在登录环节,而是在行为验证中。

另外还有一些小众的登录方式,比如:设备蓝牙、指纹、声纹、面部识别、IC卡、USB密钥等。其实现对于用户设备和登录场景有一定的要求,一般用于内部应用中,或者用于做辅助登录验证使用。(比如微信的声音锁,就是声纹的一种,用于用户设备切换时重新登录微信)

以上登录方式,都需要应用开发者自己来建立用户体系,包括身份要素验证、账号注册、账号找回、账号注销等一系列事项。

目前大部分应用开发者在设计时,考虑到实现成本和用户便捷等因素,不会自己建立用户体系,而是使用第三方登录方式来替代。

我们日常使用中,经常看到的「微信登录」、「QQ登录」、「AppleID登录」、「Github登录」等都属于第三方登录方式。

一般需要开发者在对应的开放平台创建开发者账号并创建应用,交换必要的信息,从而实现用户在开发者应用中拉起对应第三方登录的效果。

实现第三方登录的方式主要有两种:

1. OpenID

只用于身份验证,用户操作登录时,第三方平台只返回用户身份的必要信息(这个用户是谁),用于开发者应用确认身份。除此之外开发者无法以用户身份调用第三方平台的任何接口。

  • 微信小程序:开发者可以在用户运行应用时,通过 wx.login 获取 code,然后通过指定 API 接口换取用户的 openid。
  • 带参二维码登录:部分开发者还使用公众平台,通过带参数二维码在扫描后会收到平台推送的特性,实现让用户通过扫码关注公众号来登录网页,这本质上属于自建的 OpenID 方式,在平台推送时,会提供用户相对于公众号的openid,开发者依据此来判断用户的唯一和可信性,再结合公众号开放的其他接口完善整个用户登录体系的建设。

2. Oauth

主要用于授权,用户操作授权时,第三方平台会返回一个令牌,用于开发者以用户身份操作指定的第三方接口。目前随着技术的发展,在 Oauth2.0 中,建立了一个身份层(OpenID Connect ),使开发者可以在授权的同时获取用户的身份,目前被广泛应用。

  • 微信网页登录:开发者拉起微信,用户点击允许之后,微信平台会向应用开发者发送用户信息和 access_token 令牌,开发者可以使用该令牌获取用户的昵称头像信息。除了获取信息,该令牌无法干任何事情,这是微信平台限制,开发者无法调整。
  • 腾讯文档登录:开发者在各端拉起腾讯文档,展示给用户的是一个权限集,用户允许后,除了身份信息之外,还授权给开发者可以以用户之名操作文档(在权限集内时),腾讯文档允许开发者配置权限集,以满足开发者应用的需要。在明示用户且得到允许后,就可以获得指定权限。


考虑到自身应用的登录健壮性,开发者在开发WEB 和 APP时,一般会同时使用多个登录方式,通过绑定账号的设计,将多个登录要素归为一个用户身份。

即使其中一两个登录方式失效不可用了,用户也能通过其他方式找回账号。同时在高危险操作中,也可以使用不同的登录方式来验证,这个安全措施被称为多因素认证(MFA,Multi-Factor Authentication),常见的有手机验证码和安全令牌两种。

最后一次编辑于  2024-10-17  
点赞 3
收藏
评论

1 个评论

登录 后发表内容