现在业界的登录流程可以分为第三方登录和账号密码登录两种。主要的区别为:
- 出于用户的信息安全顾虑,每一个第三方账号服务一般都会要求接入方在其提供的后台注册一个具有唯一性的客户端ID,并且第三方账号服务会为该接入方生成一个安全秘钥,而第三方账号服务的所有公网API都需要使用到生成的安全秘钥。
- 对于普通的账号密码登录,则只要通过账号服务器的安全校验(一般情况下,做下签名校验即可),就可以正常的进行登录注册等操作。
账号中心的登录流程分为以下三类:
- 与APP交互的第三方登录方式, APP包具有相对安全性,只要使用一定的加密混淆技术,我们可以认为APP的代码逻辑不可见,因此可以将一些安全性要求相对不高的数据写死在APP中,即APP可以绕过账号中心直接和第三方账号服务器交互。
根据这样的特点,用户在APP端登录时,可以减少很多流程。具体交互流程见下图:
- 与H5交互的第三方登录方式,相对于APP端登录,由于H5端的代码逻辑都是用户可见的,那么一些安全要求较高的数据(比如第三方账号系统的登录秘钥),我们不可能直接明文暴露在互联网上。所以,出于安全性考虑,我们使用了现在的Oauth登录标准(也叫Oauth dance)。具体流程见下图:
- 用户直接使用手机号进行登录,也就是,用户直接使用账号中心的账号密码进行登录。具体流程见下图: