actor im 中 多种登录机制的设定

1.API认证接口定义

认证目前只支持一种方式:短信或电话回呼。(译注:此处不准确,起码还要邮箱等其他方式。)
认证步骤:

  1. 调用RequestAuthCode请求验证码。

  2. 收到验证码后使用验证码 登录/注册。

  3. 如果一直没收到验证码,调用AuthCodeCall请求电话回呼。

认证规则:
如果RequestAuthCode返回 isRegistered = false, 那么下一步使用注册接口SignUp, 否则使用登录接口 SignIn。

如果任何步骤返回超时,整个流程必须从头开始。

API定义:

StartPhoneAuth 开始电话验证
SendCodeByPhoneCall 使用电话回呼方式接收验证码
StartEmailAuth 开始邮箱验证
StartAnonymousAuth 开始匿名认证
StartTokenAuth 启动基于token的登录
StartUsernameAuth 开始账号方式登录
ValidateCode 验证用户登录
ValidatePassword 验证账号密码
GetOAuth2Params 获取OAuth2参数
CompleteOAuth2 完成OAuth2登录
SignUp 注册
SignIn 登录
GetAuthSessions 获取验证会话
TerminateSession 结束会话
TerminateAllSessions 结束所有会话
SignOut 注销

2.API详解

2.1.认证类型(译注:未全部实现)

电话方式认证类型:
1.Code
2.Password

邮箱方式认证类型:
1.Code
2.OAuth2
3.Password

2.2.电话认证1

请求:

StartPhoneAuth(Phone, AppId, AppKey, deviceHash, deviceTitle, timeZone, Languages);

响应:

PhoneResponse(transactionHash, isRegistered)。

其中,deviceHash 是设备uuid和app命名id的hash。用于重新安装时自动注销用户。(怎么起作用待研究)。

注: 此处isRegistered 为false的话就需要走注册流程,否则走登录流程:虽然一样。transactionHash 是登录前的安全验证机制,登录完删除。

2.3.电话认证2(回呼)

请求:
SendCodeByPhoneCall(transactionHash)
响应:空。

在用户未收到短信的情况下,再次调用此函数发起电话回呼通知验证码。

2.4.邮箱认证

请求:
StartEmailAuth(email, appId, appKey, deviceHash, deviceTitle, timeZone, languages);
响应:
EMailResponse(transactionHash, isRegistered, activationType)。
其中activationType 时 Code, Password, OAuth2之一。

2.5.匿名认证(意义待定)

请求:
StartAnonymousAuth(name, appId, appKey, deviceHash, deviceTitle, timeZone, languages);
响应:
Auth。

按照新建用户处理。

2.6.Token认证

请求:
StartTokenAuth(token, appId, appKey, deviceHash, deviceTitle, timeZone, languages);
响应:
Auth。

2.7.用户账号认证

请求:
StartUsernameAuth(username, appId, appKey, deviceHash, deviceTitle, timeZone, languages);
响应:
usernameResponse(transactionHash, isRegistered);

2.8.校验验证码

请求:
ValidateCode(transactionHash, code);
响应:
Auth。

2.9.验证密码

请求:
ValidatePassword(transactionHash, password);
响应:
Auth。

2.10.获取OAuth2参数

请求:
GetOAuth2Params(transactionHash, redirectUrl);
响应:
authUrl

redirectUrl是自己的Url, authUrl是第三方账号服务器的url。

2.11.完成OAuth2认证

请求:
CompleteOAuth2(transactionHash, code);
响应:
Auth。

2.12.注册

请求:
SignUp (transactionHash, name, sex, password)
响应:
Auth。

2.13.Auth响应

认证成功后返回AuthResponse信息。含登录用户信息和服务器配置信息。
Auth = (user, config)。

2.14.认证会话相关结构

Struct AuthSession = (id, authHolder, appId, appTitle, deviceTitle, authTime, authLocation, latitude, longitude);

Enum AuthHolder = {ThisDevice, OtherDevice)

2.15.获取认证会话

请求:
GetAuthSessions()
响应:
List of AuthSession。

获取所有活动用户的认证会话。 (译注:应该是指本人的多个设备登录会话)。

2.16.结束认证会话

TerminateSession(id of AuthItem) = void. 注销单个会话。
TerminateAllSessions() = void. 注销除当前会话之外的所有会话。

SignOut() = void. 注销当前会话。

    原文作者:wanghl
    原文地址: https://segmentfault.com/a/1190000008525962
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞