actor im 中 多種登陸機制的設定

1.API認證接口定義

認證目前只支持一種方式:短信或電話回呼。(譯註:此處不許確,起碼還要郵箱等其餘方式。)
認證步驟:git

  1. 調用RequestAuthCode請求驗證碼。安全

  2. 收到驗證碼後使用驗證碼 登陸/註冊。服務器

  3. 若是一直沒收到驗證碼,調用AuthCodeCall請求電話回呼。app

認證規則:
若是RequestAuthCode返回 isRegistered = false, 那麼下一步使用註冊接口SignUp, 不然使用登陸接口 SignIn。函數

若是任何步驟返回超時,整個流程必須從頭開始。ui

API定義:

StartPhoneAuth 開始電話驗證
SendCodeByPhoneCall 使用電話回呼方式接收驗證碼
StartEmailAuth 開始郵箱驗證
StartAnonymousAuth 開始匿名認證
StartTokenAuth 啓動基於token的登陸
StartUsernameAuth 開始帳號方式登陸
ValidateCode 驗證用戶登陸
ValidatePassword 驗證帳號密碼
GetOAuth2Params 獲取OAuth2參數
CompleteOAuth2 完成OAuth2登陸
SignUp 註冊
SignIn 登陸
GetAuthSessions 獲取驗證會話
TerminateSession 結束會話
TerminateAllSessions 結束全部會話
SignOut 註銷url

2.API詳解

2.1.認證類型(譯註:未所有實現)

電話方式認證類型:
1.Code
2.Passwordcode

郵箱方式認證類型:
1.Code
2.OAuth2
3.Passwordtoken

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. 註銷當前會話。

相關文章
相關標籤/搜索