本篇文檔將為您介紹介面認證的完整操作,以方便您理解。
完整的認證會經歷4個步驟:
先做初始化查詢動作,如查詢使用者必填項資訊,支援的二次認證方式等。
登入或者註冊,成功返回
Token則標識成功,如果有FlowType則進入後續子流程(如果開啟了二次認證則會進入下圖第三步流程,否則進入下圖第四步流程)。使用者在端上可以選擇二次認證方式進行認證,認證通過如果返回
Token則標識登入成功,如果有FlowType則進入到補充使用者的資訊環節,不同的FlowType進行不同的業務。當所有的完善資訊環節走完,則要麼登入成功,要麼登入失敗,有對應錯誤碼進行提示。
一、 前期準備
在CIAM後台建立應用,賦權用於認證介面許可權,並擷取到Client_ID,Client_Secret資訊。
當使用CIAM服務端對接時:鑒權方式使用BearerToken。
令牌有效性檢驗
介面說明:
調用上述檢測介面時,請務必攜帶對應類型的Token。
介面地址:
Request URI:
GET/api/bff/v1.2/developer/ciam/oauth/token/check?access_Token=access_Token請求參數:
返回參數:
{ "success": true, "code": "Operation.Success", "message": "Operation.Success", "requestId": "1662364827739$c13370e7-22ae-8697-f475-110da21f174f", "data": null }擷取登入配置資訊
當開發人員需要自訂開發登入註冊表單時,可以通過該介面擷取登入註冊組件以及登入註冊相關的一些配置項。
介面地址
Request URI:
GET/api/bff/v1.2/developer/ciam/config/loginpage請求參數
參數
類型
必填
含義
idaasAppId
String
否
應用的ID,服務端會從Request參數中取,當取不到的時候會從要求標頭裡取,如果也取不到則查詢系統預設應用的ID。
userType
String
否
使用者類型的
code,當取不到時會從系統中查詢預設的使用者類型。返回參數
{ "success": true, "code": "Operation.Success", "message": "Operation.Success", "requestId": "1672198428377$205f59b4-8a74-8fcb-19f5-b51e8580cf8f", "data": { "2factorType": [ "pwd", "sms" ], "smsEmailCaptchaRisk": { "enterpriseUuid": "2bcdef58e8ae5cf6f5b18343bc1fbebc2f64xbYa0yx", "riskType": "SMS_EMAIL_CAPTCHA", "enabled": false, "lockTime": 0, "riskTimes": 1, "riskTimeRange": 5, "ipBlackList": null, "historyTimes": 0, "pwdCycle": 0, "pwdWarnEnable": false, "pwdWarnBefore": 0, "pwdWarnType": null, "pwdRules": 0, "pwdLength": 0 }, "registerRule": { "uuid": "83e0c7d57c5111ed97e700155d6496d5", "createTime": 0, "archived": false, "registerRequired": "phoneNumber,email", "sceneType": "LOGIN,REGISTER", "userTypeCode": "default", "enabled": true, "enterpriseUuid": "2bcdef58e8ae5cf6f5b18343bc1fbebc2f64xbYa0yx", "enableRegister": true, "registerRequiredAttrs": [ "phoneNumber", "email" ] }, "userTypes": [], "pwdFailRisk": { "enterpriseUuid": "2bcdef58e8ae5cf6f5b18343bc1fbebc2f64xbYa0yx", "riskType": "PWD_FAIL_CAPTCHA", "enabled": false, "lockTime": 0, "riskTimes": 20, "riskTimeRange": 5, "ipBlackList": null, "historyTimes": 0, "pwdCycle": 0, "pwdWarnEnable": false, "pwdWarnBefore": 0, "pwdWarnType": null, "pwdRules": 0, "pwdLength": 0 }, "pwdRule": { "enterpriseUuid": "2bcdef58e8ae5cf6f5b18343bc1fbebc2f64xbYa0yx", "riskType": "PWD_RULE", "enabled": false, "lockTime": 0, "riskTimes": 0, "riskTimeRange": 0, "ipBlackList": null, "historyTimes": 0, "pwdCycle": 0, "pwdWarnEnable": false, "pwdWarnBefore": 0, "pwdWarnType": null, "pwdRules": 0, "pwdLength": 8 }, "usernameRule": { "id": 0, "createTime": "2023-03-03 15:22", "archived": false, "updateTime": null, "uppercase": true, "lowercase": true, "number": true, "strike": true, "underline": true, "point": true, "emailChar": false, "minLength": 4, "maxLength": 32, "mobileNumAsAccountId": false, "enterpriseUuid": null, "usernamePolicyUuid": "1938a8f15d35bdd6814839bc8ebcf070lvk6sLvvBpY" } } }參數名
類型
描述
2factorType
Array
支援的二次認證方式。
PWD
String
賬密模式。
SMS
String
手機驗證碼模式。
EMAIL
String
郵箱驗證碼模式。
FINGERPRINT
String
指紋模式。
FACE
String
人臉模式。
smsEmailCaptchaRisk
Object
手機號/郵箱風控配置。
pwdFailRisk
Object
密碼風控配置。
registerRule
Object
註冊相關規則。
enableRegister
Boolean
是否啟用註冊。
重要當為
False時,不允許註冊,不能顯示註冊按鈕,不能進入註冊頁面。registerRequiredAttrs
Array
註冊必填的屬性,可選為 PhoneNumber、Email。
pwdRule
Object
密碼原則。
usernameRule
Object
使用者名稱策略。
擷取應用發行的條款
說明業務系統自己實現登入頁面又需要使用IDaaS的條款資訊時。處理邏輯:IDaaS會返回當前應用配置的登入和註冊的最大版本號碼的條款記錄。
介面地址
Request URI:
GET/api/bff/v1.2/developer/ciam/consents請求參數
無
返回參數
{ "success": true, "code": "Operation.Success", "message": "Operation.Success", "requestId": "1656403156044$499ad3d2-0a72-08c0-f849-3b3e4b6d0530", "data": { "REGISTER": [ { "versionNumber": "v1.0", "versionTitle": "使用者註冊協議v1.0", "versionContentType": "TEXT", "publishDate": 1656388386000, "expiredDate": null, "recordUuid": "7839d3cb448c449d105e4c32cd97c06cEsTyC81Re7c", "recordExternalId": "4d05f0fe-7b57-4a9c-a7ad-4624e5d62bb7", "consentType": "REGISTER" }, { "versionNumber": "v1.0", "versionTitle": "使用者隱私條款v1.0", "versionContentType": "TEXT", "publishDate": 1656388390000, "expiredDate": null, "recordUuid": "95b1c752e2f69f91c6570699e764982dwsyao0iDg6p", "recordExternalId": "35058f6e-b131-4b7c-b35c-26f188526167", "consentType": "REGISTER" }, { "versionNumber": "v1.0", "versionTitle": "阿里雲 IDaaS CIAM 使用協議", "versionContentType": "TEXT", "publishDate": 1656388464000, "expiredDate": null, "recordUuid": "ed61f21663b6079c7622b641fc17fdf3pxkBEJwZqlg", "recordExternalId": "569980f9-91b0-40d8-8813-567ef5df6f54", "consentType": "GENERAL" } ], "LOGIN": [ { "versionNumber": "v1.0", "versionTitle": "使用者協議v1.0", "versionContentType": "TEXT", "publishDate": 1656387390000, "expiredDate": null, "recordUuid": "4871329e10f51f85eb07d17975b8e4acUhuac1RyyDD", "recordExternalId": "58fff533-6887-40cd-a799-1c6d168c5c3a", "consentType": "LOGIN" }, { "versionNumber": "v1.1", "versionTitle": "隱私條款1.0", "versionContentType": "TEXT", "publishDate": 1656387399000, "expiredDate": null, "recordUuid": "1e2e5c0eca5cddfeb14f88b44a03a0c3eukUKSIYxyP", "recordExternalId": "68dd7e08-0db4-4219-a0b2-2f753593dd6e", "consentType": "LOGIN" }, { "versionNumber": "v1.0", "versionTitle": "阿里雲 IDaaS CIAM 使用協議", "versionContentType": "TEXT", "publishDate": 1656388464000, "expiredDate": null, "recordUuid": "ed61f21663b6079c7622b641fc17fdf3pxkBEJwZqlg", "recordExternalId": "569980f9-91b0-40d8-8813-567ef5df6f54", "consentType": "GENERAL" } ] } }參數名
類型
必須
內容說明
外層 key
String
是
條款類型:
LOGIN - 登入相關條款。
REGISTER:註冊相關條款。
versionNumber
String
是
版本名稱。
versionTitle
String
是
標題。
versionContentType
String
是
內容的類型:PDF | IMAGE| WORD| TEXT。
publishDate
Number
是
發布時間。
expiredDate
Number
到期時間。
recordUuid
String
是
所屬條款的Uuid。
recordExternalId
String
是
所屬條款外部ID。
查看條款詳情
說明該介面並不是返回一個完整的HTML頁面,而是返回條款的內容(base64編碼),業務方需要主動解碼後渲染。 建議:解碼後的條款內容顯示到一個新的HTML中,防止HTML樣式被汙染。
介面地址
Request URI:
POST/api/bff/v1.2/developer/ciam/consentContent-Type:application/json請求參數
參數名
類型
必須
內容說明
includeContent
Boolean
是
是否包含條款詳情,固定為True。
recordExternalId
String
是
條款外部ID。
versionNumber
String
否
條款的版本號碼。
返回參數
{ "success": true, "code": "Operation.Success", "message": "Operation.Success", "requestId": "1657079658185$d74c4420-5a3e-d57a-a625-02dba1dcab48", "data": { "versionTitle": "使用者協議v1.0", "recordExternalId": "58fff533-6887-40cd-a799-1c6d168c5c3a", "contentType": "TEXT", "versionNumber": "v1.0", "base64EncodeContent": "PHA+55m75b2V55u45YWz5p2h5qy+LeeUqOaIt+WNj+iurnYxLjA8L3A+", "status": "PUBLISHED" } }參數名
類型
必須
內容說明
versionNumber
String
是
條款的版本號碼。
versionTitle
String
是
條款的標題。
contentType
String
是
內容的類型:PDF | IMAGE| WORD| TEXT。
base64EncodeContent
String
是
條款的內容,Base 64 編碼。
recordExternalId
String
是
條款的外部ID。
status
String
是
條款的狀態,一般為 PUBLISHED (發行),參考值:
PREPARING:未發布。
PUBLISHED:發行。
ARCHIVED:已停用。
擷取應用支援的認證源
說明當業務系統需要整合IDaaS的社交類型登入時調用。IDaaS會返回當前應用配置的所有認證方式,預設賬密和手機
code是不需要開通就會有的登入方式。介面地址
Request URI:
GET/api/bff/v1.2/developer/ciam/load_enterprise_auths請求參數
無
返回參數
{ "success": true, "code": "Operation.Success", "message": "Operation.Success", "requestId": "1660644717797$c35da4fa-d354-546c-8729-0e411473af14", "data": { "auths": [ { "enterpriseAuthId": null, "authName": "帳號密碼登入", "authType": "usernamePassword", "clientId": null, "supportOAuth": true }, { "enterpriseAuthId": null, "authName": "驗證碼登入", "authType": "verifyCode", "clientId": null, "supportOAuth": true }, { "enterpriseAuthId": "dcealipay", "authName": "支付寶小程式登入", "authType": "alipay", "clientId": "asd", "supportOAuth": true }, { "enterpriseAuthId": "dcewechat1", "authName": "移動微信登入", "authType": "wechat", "clientId": "sad", "supportOAuth": true }, { "enterpriseAuthId": "dcewechat", "authName": "網站微信登入", "authType": "wechat", "clientId": "asd", "supportOAuth": true } ] } }參數名
類型
必須
內容說明
enterpriseAuthId
String
是
認證源ID。
authName
String
是
認證源名稱。
authType
String
是
認證源類型。
clientId
String
是
認證源的AccessKey。
supportOAuth
Boolean
是
是否支援OAuth,系統保留參數,預設返回
True。擷取社交認證源的資訊
該API主要用於擷取單個社交平台的配置資訊,用於組裝向第三方社交平台發起授權登入的連結。
介面地址
Request URI:
GET/api/bff/v1.2/developer/ciam/get_adapter_info請求參數
參數名
類型
必須
內容說明
enterpriseAuthId
String
是
IDaaS認證源ID,可以在認證源列表中擷取。
idaasAppId
String
否
IDaaS應用的ID,如果想在社交登入完成後跳轉到特定的應用而不是預設的使用者中心時,需要傳遞該參數。
返回參數
{ "success": true, "code": "Operation.Success", "message": "Operation.Success", "requestId": "1665199025342$d73bd194-ea31-0acc-8da7-9be7e5b7363e", "data": { "state": "ID:demoidaasappid", "authenticateJson": "{\"appId\":\"wxexxxxxc8\",\"appSecret\":\"********\",\"authId\":\"wechat\",\"createTime\":\"2022-06-09 20:32\",\"creator\":\"admin\",\"display\":true,\"enabled\":true,\"enterpriseAuthId\":\"xxxx\",\"enterpriseHost\":\"127.0.0.1\",\"enterpriseId\":\"xxxx\",\"frontCallbackUrl\":\"http://xxxx.com/frontend/login/#/adapterCallback\",\"name\":\"微信登入\",\"redirectUrl\":\"\",\"uuid\":\"702e59b9cdf5dd2617b40572bb9b1efaVUMACThx5C4\"}" } }其中
authenticateJso為JSON字串,格式如下:{ "appId": "wxexxxxxc8", "appSecret": "********", "authId": "wechat", "createTime": "2022-06-09 20:32", "creator": "admin", "display": true, "enabled": true, "enterpriseAuthId": "xxxx", "enterpriseHost": "127.0.0.1", "enterpriseId": "xxxx", "frontCallbackUrl": "http://xxxx.com/frontend/login/#/adapterCallback", "name": "微信登入", "redirectUrl": "", "uuid": "702e59b9cdf5dd2617b40572bb9b1efaVUMACThx5C4" }參數名
類型
必須
內容說明
state
String
是
當入參傳IdaasAppId的前提下,該值格式為
ID:{idaasAppId},否則為一串隨機的字串。authenticateJson
String
是
社交認證源的配置資訊。
appId
String
是
社交認證源的AppId,第三方社交平台的應用Id。
appSecret
String
否
社交認證源的密鑰,固定返回脫敏後的 *,業務端用不到。
authId
String
是
認證源標識。
creator
String
是
認證源建立者。
display
Boolean
是
是否顯示,固定為True。
enabled
Boolean
是
是否啟用,固定為 True。
enterpriseAuthId
String
是
認證源ID。
enterpriseId
String
是
企業ID。
frontCallbackUrl
String
是
前端回調地址,對應第三方社交平台配置的回調地址。
name
String
是
認證源名稱。
enterpriseHost
String
否
保留欄位,可忽略。
redirectUrl
String
否
保留欄位,可忽略。
uuid
String
是
認證源Uuid。
業務端擷取到認證源配置資訊後組裝第三方社交平台的授權地址即可,以微信開放平台為例,組裝完的授權地址為:
GET https://open.weixin.qq.com/connect/qrconnect?appid=wxexxxxxc8 &redirect_uri=http%3A%2F%2Fxxx.com%2Ffrontend%2Flogin%2F%23%2FadapterCallback &response_type=code &scope=snsapi_login &state=xxxx重要如果業務方不依賴該介面返回的資訊而是自行拼接第三方認證源的授權地址,並且需要在第三方社交平台登入完成後跳轉到非使用者中心的應用時,就需要按照ID:{IdaasAppId}方式產生
state並附帶到第三方認證源的授權地址中。擷取圖片驗證碼
在傳送簡訊、登入之前,建議調用本介面擷取圖片驗證碼,並在登入時傳給IDaaS。這樣可以有效避免針對發簡訊、登入介面的機器攻擊。當開啟了系統風控時,也會觸發校正圖片驗證碼的邏輯。
介面地址
Request URI:
GET/api/bff/v1.2/developer/ciam/captcha請求參數
無
返回參數
{ "success": true, "code": "Operation.Success", "message": "Operation.Success", "requestId": "1660882151242$64308516-92ed-4303-8d3c-47d29c95f2a7", "data": { "captchaCode": "557c0e18147974608a514a3071110e6bd7W1XxMMVXu", "captchaImage": "iVBORw0KGgoAAAANSUhEUgAAAFAAAAAaCAIAAACvsEzwAAABW0lEQVR42u3YMQ7CMAwF0EjcgZWNnZEbcAIuwQILh2Jh4X5QKVL0ZTu20yZNJFplKAmleTg1DuH7Z0fYwBt4Aw91PJ73huD956S0XsIi85wIi7zYM93bvH1pTIYGpxngJHaHG7aFZvFa/wdWAOcWc2QnJOKrB9lvbgjO8cTO4/saWzwfEWymK4ytuMiJlp/r4PPrklrsTyd9IkxUyMYgc6EJRiT2TM3MmquCxVVdCk4wpV8xV8vSM8BxZvj0eo4YW5GEQ7lQ9wdjxvIvZiWGOMTf1hOcS9QKWwRj9uKjJNShRX7WzajlEdDNmJnItSSTkdH0svnmQSw8cAbc5gHz0OngVXdLvLTEOU02cW2bWZqsEf5bVS1pLTHzCRGembrIg6qA+++HcxEmGcssEkmBhYWXWXJ2+APAs23yFMYkOefC2x/shJXuqJzf3bjgRuahwbXMA4GdZj/bBP8A1qgY88PlCaMAAAAASUVORK5CYII=" } }欄位名
類型
樣本
內容說明
captchaCode
String
5c4bc75 ... ... XVH9Lqk
圖形驗證碼唯一標識,在驗證的時候需要傳入。
captchaImage
String
iVBORw ... ... kSumCC
驗證碼圖片,Base64格式資料。
擷取系統支援的使用者類型列表
登入註冊前允許切換使用者類型進行登入註冊,用該介面可以擷取到當前租戶下支援的所有使用者類型,調用方需要進行判斷,當有且僅有一條使用者類型時,不建議再彈出使用者類型選擇的視窗。
介面地址
Request URI:
GET/api/bff/v1.2/developer/ciam/config/userTypes請求參數
無
返回參數
{ "success": true, "code": "Operation.Success", "message": "Operation.Success", "requestId": "1673424642819$110ff5f3-e47a-8404-cc3a-282d754fd32c", "data": [ { "userTypeName": "普通使用者", "userTypeCode": "default", "uuid": "3762b69d9f2580c7901441719733271b22zUqxkuQDh" }, { "userTypeName": "醫生", "userTypeCode": "doctor" "uuid": "3xxxxxd9f2580c7901441719733271b22zUqxkuQDh" } ] }欄位名
類型
樣本
內容說明
userTypeName
String
普通使用者
使用者類型的名稱。
userTypeCode
String
default
使用者類型的編碼。
uuid
String
xxxxxxxxx
使用者類型的Uuid。
切換帳號類型
登入註冊流程中,允許使用者切換當前登入的使用者類型,切換後會產生新的流程ID。
介面地址
Request URI:
GET/api/bff/v1.2/developer/ciam/config/change_user_type請求參數
參數名
類型
必填
含義
fId
String
是
切換使用者類型前的
FId,切換完成後會產生新的FId。userType
String
是
切換後的使用者類型
code。返回參數
{ "success": true, "code": "Operation.Success", "message": "Operation.Success", "requestId": "1660882151242$64308516-92ed-4303-8d3c-47d29c95f2a7", "data": { "fId": "xxxxxxxxxxxx" } }欄位名
類型
樣本
內容說明
fId
String
xxxxxxxxxxx
切換完使用者類型後新產生的
FId,後續流程需要使用該FId,舊的FId需要捨棄。
二、登入、註冊
賬密登入
介面地址
Request URI:
POST/api/bff/v1.2/developer/ciam/login/pwdContent-Type: application/json請求參數
說明若開啟了簡訊/賬密防暴,圖形驗證碼則在認證失敗次數超過風控閾值時需要驗證圖形驗證碼。
參數名
類型
必須
內容說明
fId
String
否
上一步流程的
FId(如果存在)。username
String
是
使用者名稱。
userType
String
否
自訂使用者類型,預設為普通使用者。
password
String
是
密碼。
response_type
String
否
當
code時,返回授權碼;當傳Token時,返回使用者的Token。agreeConsent
Boolean
否
使用者是否勾選條款(當應用配置了相應條款,此參數必傳)。
captchaCode
String
否
圖形驗證碼的唯一標識,通過擷取圖形驗證介面返回。
captchaText
String
否
圖形驗證碼,根據介面中驗證碼圖片顯示的數字進行填寫。
返回參數
{ "success": true, "code": "Operation.Success", "message": "Operation.Success", "requestId": "1656326070459$be264b8d-a6ca-a75c-f224-ade8531cc4af", "data": { "userId": null, "uuid": "c0d7ebbae869a76781183310768088543DkolDLzrSB", "access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6IjkxMGJkMTY4MzFhOTdhZDRhYjdlMGRjMmYzNDY5NTJiaXF6UVdEWWZMbz****.eyJjaXBoZXJUZXh0IjoiVkh3YXpxZTdVb1owNEs5TTlnN2pqLzUvTEhSc2ZyOG1wVHU0TWdUckYwTGJLZ0ZLaHl0ckRsTktUa2FYUzMxRU1kRE1GWE1iWlZLYXd2SzM2OWk1SGZzZk1rSjcyRHFnbCtUMHZTVzFKRG9mVEFpcm1POWJOQ0pWQ29tamxqbGp4dmRHalNET1BtNlhZeEtqWGFrelhxYytRODM3QjNnTlQzbmNJNDY3UExuOHNTNXFJNmdMa1doeWJKZHA0ZXZMaHovUmtuV0RTRXZlNUw3T1Jzd0xoMTdWTGw4SE5Va0Z1TWxDR2FGWVliT3JmL3dHMkpodktNZlZ6ZzFKUTROb1UzWDI4bzR6dHhRclZtWlV3dWo2R1NZcTB0alc0akJlQUErUkV4dkExd3VWUEtSdVJZS0dlZkt3Y0JWOVBxMGlkZjZ0dU04Vjlnd3BpSEtFVnhHM0lXVFVlL0hzb2RxMVVMMTVRZWErcTNvOEpDMitoRGozWE1KOS92Yis2YXo0IiwiZGF0YUNpcGhlckFsZyI6IkRFRkFVTFQiLCJ0ZW5hbnRLZXlVdWlkIjoiN2FiNDI3ZTEzNDRkZGUwMWM5Zjk3NDcyNzYwMzg0YWJwZnRLTWFuRkVGSCJ9.c57U7qi46KnVAPnzk2bgHI9sPoUlk93L5mPOq1WRy_s", "token_type": "bearer", "refresh_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6IjkxMGJkMTY4MzFhOTdhZDRhYjdlMGRjMmYzNDY5NTJiaXF6UVdEWWZMbzUifQ.eyJjaXBoZXJUZXh0IjoiVkh3YXpxZTdVb1owNEs5TTlnN2pqLzUvTEhSc2ZyOG1wVHU0TWdUckYwTGJLZ0ZLaHl0ckRsTktUa2FYUzMxRU1kRE1GWE1iWlZLYXd2SzM2OWk1SGZzZk1rSjcyRHFnbCtUMHZTVzFKRG9mVEFpcm1POWJOQ0pWQ29tamxqbGp4dmRHalNET1BtNlhZeEtqWGFrelh0UjBGQXd3eDdINTRsWldxNzdCdEhmUUd5UHFPZWVhK3pLNWRxeWFTMEdXb0NmRkJ1Q1Q1TEFvTlhTRVFWVlc1ZGp3eGJsRUZrSjhVaXBpYXoxTXI1Z3ZSV3N0NlRNN2xHR09tbEVETjJJbmg5dkluVEpUd0RNeTFOSEo1WDJqaGRwMlNvUlN0QUxONlZpaTVMakh3dHAxQWdqZlZuRlR1aVI3UWVLUTVsTjBkdnVmOEtHYkFoQ2lENngxalg4VERKOE5PRWNYYTYyRHdEQ0UrSDlRQlcxTzlPL1FWUG9TSXVqT1lGU0IyVkNsbGZGemM4RmhLbGZLRlcyZlNYbFRSY05YNDE5djcvNWpxL3RuUU1EMjl4YkoxbTAySmRTb3NacjIvNjR1dEpMOSIsImRhdGFDaXBoZXJBbGciOiJERUZBVUxUIiwidGVuYW50S2V5VXVpZCI6IjdhYjQyN2UxMzQ0ZGRlMDFjOWY5NzQ3Mjc2MDM4NGFicGZ0S01hbkZFRkgifQ.VjrWftgXUmLD_P9ECVYGwBEzpyrvZcy-hdrAciIp-aU", "expires_in": 179999, "scope": "USER_API", "id_token": "eyJhbGciOiJSUzI1NiJ9.eyJzdWIiOiJjMGQ3ZWJiYWU4NjlhNzY3ODExODMzMTA3NjgwODg1NDNEa29sREx6clNCIiwic2NvcGUiOiJjMGQ3ZWJiYWU4NjlhNzY3ODExODMzMTA3NjgwODg1NDNEa29sREx6clNCIDEyMzQ2MTExMUAxMy5jb20gMTU4MDExMTExMDAiLCJsb2dpbk5hbWUiOiJ0ZXN0MDI3IiwiY3VzdG9tZXJJZCI6IjQ0MTIxNjU2Mjk4NDE5NTY4MTkiLCJleHAiOjE2NTY1MDYwODAsImp0aSI6InZRN0Uxa0xPTzVpQ3ZuR2JYTUdkZWciLCJpYXQiOjE2NTYzMjYwODEsIm5iZiI6MTY1NjMyNjAyMX0.CW3d41c7oGP23FU5DKGyiX553qLea09oYS4s-dISnse9iE-gGjZxUEqXlHSgfSERES9VeaaVwXEUqPOGKkHEEW0fQKcS82WTepiy1QHB0WeRzqKQQY9t38Rp-v_uMlpKLhnrfK_q_Q1A9ak5kDlpvidp2p5I84NmnisiQmGW7ep3xzs9V7axV9ump207ek5Bl1fs1kZ2gOUTHyWuQ0XoIDF6NHmUjtpA31jc5a13o-UIgX1Bd3ZNjmFiwm4EQ3xyZci72w0rTV7EyRa4KU7KyBjv-QJGv8T2Y4e2GnI-BiqWsaE1wtImhvXRRQ__MT_lRDph87-7zA4cTWEsZJRSXg" } }驗證碼登入
發送驗證碼
該介面適用於使用者通過簡訊驗證碼登入時擷取驗證碼。CIAM首先會基於客戶的IP和手機號碼維度,校正簡訊發送頻率,如果超過系統風控策略配置的閾值,則會強制校正圖形驗證碼(此時必須傳遞CaptchaCode和CaptchaText參數,可以通過擷取圖形驗證碼介面獲得),如果未超過閾值,則不校正圖形驗證碼。為了防止簡訊轟炸,強烈建議配置系統風控策略。
介面地址
Request URI:
POST/api/bff/v1.2/developer/ciam/login/obtain_codeContent-Type: application/json請求參數
說明若開啟了簡訊/郵件防暴,圖形驗證碼則在發送驗證碼次數超過風控閾值時需要驗證圖形驗證碼。
參數名
類型
必須
內容說明
fId
String
否
上一步流程的
FId(如果存在)。phoneNumber
String
是
手機號,當
Type傳 SMS時該值必傳。phoneRegion
String
否
手機區號,預設86。
type
String
是
驗證碼類型。SMS代表簡訊,EMAIL代表郵箱。
email
String
否
郵箱,當
Type傳 EMAIL時該值必傳。language
String
否
發送驗證碼的語言類型,預設取慣用語言。
engineCode
String
否
發送驗證碼的網關編碼,預設取首選服務商的首選網關。
userType
String
否
自訂使用者類型,預設為普通使用者。
captchaCode
String
否
圖形驗證碼的唯一標識,通過擷取圖形驗證介面返回。
captchaText
String
否
圖形驗證碼,根據介面中驗證碼圖片顯示的數字進行填寫。
返回參數
參數名
類型
樣本
內容說明
fId
String
sfwf2w233fsfdsddf
請求驗證碼時需要原樣傳回。
校正驗證碼
重要服務端僅保留
Fid30分鐘(預設),所以30分鐘內如果沒有進行校正,則驗證碼將會失效; 驗證碼校正成功後,將會立即失效,防止重放攻擊; 驗證碼連續校正失敗超過系統風控策略配置的閾值後,將會失效並鎖定該使用者,防止暴力破解驗證碼;介面地址
Request URI:
POST/api/bff/v1.2/developer/ciam/login/verify_codeContent-Type: application/json請求參數
參數名
類型
必須
內容說明
phoneNumber
String
否
當
Type傳SMS時該值必傳,需要與發送時保持一致。email
String
否
郵箱,當
Type傳 EMAIL時該值必傳。code
String
是
簡訊驗證碼註冊 - 發送驗證碼介面發送的驗證碼。
fId
String
是
簡訊驗證碼註冊 - 發送驗證碼介面返回參數中的流程ID
type
String
是
驗證碼類型。SMS代表簡訊,EMAIL代表郵箱。
responseType
String
否
當傳
code時,返回授權碼。當傳
Token時,返回使用者的Token。userType
String
否
自訂使用者類型,預設為普通使用者。
agreeConsent
Boolean
否
使用者是否勾選條款(當應用配置了相應條款,此參數必傳)。
返回參數
{ "success": true, "code": "Operation.Success", "message": "Operation.Success", "requestId": "1656326070459$be264b8d-a6ca-a75c-f224-ade8531cc4af", "data": { "userId": null, "uuid": "c0d7ebbae869a76781183310768088543DkolDLzrSB", "access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6IjkxMGJkMTY4MzFhOTdhZDRhYjdlMGRjMmYzNDY5NTJiaXF6UVdEWWZMbz****.eyJjaXBoZXJUZXh0IjoiVkh3YXpxZTdVb1owNEs5TTlnN2pqLzUvTEhSc2ZyOG1wVHU0TWdUckYwTGJLZ0ZLaHl0ckRsTktUa2FYUzMxRU1kRE1GWE1iWlZLYXd2SzM2OWk1SGZzZk1rSjcyRHFnbCtUMHZTVzFKRG9mVEFpcm1POWJOQ0pWQ29tamxqbGp4dmRHalNET1BtNlhZeEtqWGFrelhxYytRODM3QjNnTlQzbmNJNDY3UExuOHNTNXFJNmdMa1doeWJKZHA0ZXZMaHovUmtuV0RTRXZlNUw3T1Jzd0xoMTdWTGw4SE5Va0Z1TWxDR2FGWVliT3JmL3dHMkpodktNZlZ6ZzFKUTROb1UzWDI4bzR6dHhRclZtWlV3dWo2R1NZcTB0alc0akJlQUErUkV4dkExd3VWUEtSdVJZS0dlZkt3Y0JWOVBxMGlkZjZ0dU04Vjlnd3BpSEtFVnhHM0lXVFVlL0hzb2RxMVVMMTVRZWErcTNvOEpDMitoRGozWE1KOS92Yis2YXo0IiwiZGF0YUNpcGhlckFsZyI6IkRFRkFVTFQiLCJ0ZW5hbnRLZXlVdWlkIjoiN2FiNDI3ZTEzNDRkZGUwMWM5Zjk3NDcyNzYwMzg0YWJwZnRLTWFuRkVGSCJ9.c57U7qi46KnVAPnzk2bgHI9sPoUlk93L5mPOq1WRy_s", "token_type": "bearer", "refresh_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6IjkxMGJkMTY4MzFhOTdhZDRhYjdlMGRjMmYzNDY5NTJiaXF6UVdEWWZMbzUifQ.eyJjaXBoZXJUZXh0IjoiVkh3YXpxZTdVb1owNEs5TTlnN2pqLzUvTEhSc2ZyOG1wVHU0TWdUckYwTGJLZ0ZLaHl0ckRsTktUa2FYUzMxRU1kRE1GWE1iWlZLYXd2SzM2OWk1SGZzZk1rSjcyRHFnbCtUMHZTVzFKRG9mVEFpcm1POWJOQ0pWQ29tamxqbGp4dmRHalNET1BtNlhZeEtqWGFrelh0UjBGQXd3eDdINTRsWldxNzdCdEhmUUd5UHFPZWVhK3pLNWRxeWFTMEdXb0NmRkJ1Q1Q1TEFvTlhTRVFWVlc1ZGp3eGJsRUZrSjhVaXBpYXoxTXI1Z3ZSV3N0NlRNN2xHR09tbEVETjJJbmg5dkluVEpUd0RNeTFOSEo1WDJqaGRwMlNvUlN0QUxONlZpaTVMakh3dHAxQWdqZlZuRlR1aVI3UWVLUTVsTjBkdnVmOEtHYkFoQ2lENngxalg4VERKOE5PRWNYYTYyRHdEQ0UrSDlRQlcxTzlPL1FWUG9TSXVqT1lGU0IyVkNsbGZGemM4RmhLbGZLRlcyZlNYbFRSY05YNDE5djcvNWpxL3RuUU1EMjl4YkoxbTAySmRTb3NacjIvNjR1dEpMOSIsImRhdGFDaXBoZXJBbGciOiJERUZBVUxUIiwidGVuYW50S2V5VXVpZCI6IjdhYjQyN2UxMzQ0ZGRlMDFjOWY5NzQ3Mjc2MDM4NGFicGZ0S01hbkZFRkgifQ.VjrWftgXUmLD_P9ECVYGwBEzpyrvZcy-hdrAciIp-aU", "expires_in": 179999, "scope": "USER_API", "id_token": "eyJhbGciOiJSUzI1NiJ9.eyJzdWIiOiJjMGQ3ZWJiYWU4NjlhNzY3ODExODMzMTA3NjgwODg1NDNEa29sREx6clNCIiwic2NvcGUiOiJjMGQ3ZWJiYWU4NjlhNzY3ODExODMzMTA3NjgwODg1NDNEa29sREx6clNCIDEyMzQ2MTExMUAxMy5jb20gMTU4MDExMTExMDAiLCJsb2dpbk5hbWUiOiJ0ZXN0MDI3IiwiY3VzdG9tZXJJZCI6IjQ0MTIxNjU2Mjk4NDE5NTY4MTkiLCJleHAiOjE2NTY1MDYwODAsImp0aSI6InZRN0Uxa0xPTzVpQ3ZuR2JYTUdkZWciLCJpYXQiOjE2NTYzMjYwODEsIm5iZiI6MTY1NjMyNjAyMX0.CW3d41c7oGP23FU5DKGyiX553qLea09oYS4s-dISnse9iE-gGjZxUEqXlHSgfSERES9VeaaVwXEUqPOGKkHEEW0fQKcS82WTepiy1QHB0WeRzqKQQY9t38Rp-v_uMlpKLhnrfK_q_Q1A9ak5kDlpvidp2p5I84NmnisiQmGW7ep3xzs9V7axV9ump207ek5Bl1fs1kZ2gOUTHyWuQ0XoIDF6NHmUjtpA31jc5a13o-UIgX1Bd3ZNjmFiwm4EQ3xyZci72w0rTV7EyRa4KU7KyBjv-QJGv8T2Y4e2GnI-BiqWsaE1wtImhvXRRQ__MT_lRDph87-7zA4cTWEsZJRSXg" } }
社交登入
介面地址
Request URI:
POST/api/bff/v1.2/developer/ciam/login/socialContent-Type: application/json請求參數
{ "enterpriseAuthId": "ciammasterwechat", "code": "011RaA1w3Gp0GY234r0w3vhlzU2RaA1P", "state": "xxxxx", "agreeConsent": true }參數名
類型
必填
內容描述
code
String
是
第三方社交平台授權登入成功後傳回的code,AppleId平台需要傳蘋果返回的
Identity_Token。state
String
否
第三方社交平台授權登入完成後傳回的
State。userType
String
否
自訂使用者類型,預設為普通使用者。
enterpriseAuthId
String
是
認證源ID。
agreeConsent
Boolean
否
使用者是否勾選條款(當應用配置了相應條款,此參數必傳)。
返回參數
有綁定關係
{ "success": true, "code": "Operation.Success", "message": "Operation.Success", "requestId": "1656326070459$be264b8d-a6ca-a75c-f224-ade8531cc4af", "data": { "userId": null, "uuid": "c0d7ebbae869a76781183310768088543DkolDLzrSB", "access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6IjkxMGJkMTY4MzFhOTdhZDRhYjdlMGRjMmYzNDY5NTJiaXF6UVdEWWZMbz****.eyJjaXBoZXJUZXh0IjoiVkh3YXpxZTdVb1owNEs5TTlnN2pqLzUvTEhSc2ZyOG1wVHU0TWdUckYwTGJLZ0ZLaHl0ckRsTktUa2FYUzMxRU1kRE1GWE1iWlZLYXd2SzM2OWk1SGZzZk1rSjcyRHFnbCtUMHZTVzFKRG9mVEFpcm1POWJOQ0pWQ29tamxqbGp4dmRHalNET1BtNlhZeEtqWGFrelhxYytRODM3QjNnTlQzbmNJNDY3UExuOHNTNXFJNmdMa1doeWJKZHA0ZXZMaHovUmtuV0RTRXZlNUw3T1Jzd0xoMTdWTGw4SE5Va0Z1TWxDR2FGWVliT3JmL3dHMkpodktNZlZ6ZzFKUTROb1UzWDI4bzR6dHhRclZtWlV3dWo2R1NZcTB0alc0akJlQUErUkV4dkExd3VWUEtSdVJZS0dlZkt3Y0JWOVBxMGlkZjZ0dU04Vjlnd3BpSEtFVnhHM0lXVFVlL0hzb2RxMVVMMTVRZWErcTNvOEpDMitoRGozWE1KOS92Yis2YXo0IiwiZGF0YUNpcGhlckFsZyI6IkRFRkFVTFQiLCJ0ZW5hbnRLZXlVdWlkIjoiN2FiNDI3ZTEzNDRkZGUwMWM5Zjk3NDcyNzYwMzg0YWJwZnRLTWFuRkVGSCJ9.c57U7qi46KnVAPnzk2bgHI9sPoUlk93L5mPOq1WRy_s", "token_type": "bearer", "refresh_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6IjkxMGJkMTY4MzFhOTdhZDRhYjdlMGRjMmYzNDY5NTJiaXF6UVdEWWZMbzUifQ.eyJjaXBoZXJUZXh0IjoiVkh3YXpxZTdVb1owNEs5TTlnN2pqLzUvTEhSc2ZyOG1wVHU0TWdUckYwTGJLZ0ZLaHl0ckRsTktUa2FYUzMxRU1kRE1GWE1iWlZLYXd2SzM2OWk1SGZzZk1rSjcyRHFnbCtUMHZTVzFKRG9mVEFpcm1POWJOQ0pWQ29tamxqbGp4dmRHalNET1BtNlhZeEtqWGFrelh0UjBGQXd3eDdINTRsWldxNzdCdEhmUUd5UHFPZWVhK3pLNWRxeWFTMEdXb0NmRkJ1Q1Q1TEFvTlhTRVFWVlc1ZGp3eGJsRUZrSjhVaXBpYXoxTXI1Z3ZSV3N0NlRNN2xHR09tbEVETjJJbmg5dkluVEpUd0RNeTFOSEo1WDJqaGRwMlNvUlN0QUxONlZpaTVMakh3dHAxQWdqZlZuRlR1aVI3UWVLUTVsTjBkdnVmOEtHYkFoQ2lENngxalg4VERKOE5PRWNYYTYyRHdEQ0UrSDlRQlcxTzlPL1FWUG9TSXVqT1lGU0IyVkNsbGZGemM4RmhLbGZLRlcyZlNYbFRSY05YNDE5djcvNWpxL3RuUU1EMjl4YkoxbTAySmRTb3NacjIvNjR1dEpMOSIsImRhdGFDaXBoZXJBbGciOiJERUZBVUxUIiwidGVuYW50S2V5VXVpZCI6IjdhYjQyN2UxMzQ0ZGRlMDFjOWY5NzQ3Mjc2MDM4NGFicGZ0S01hbkZFRkgifQ.VjrWftgXUmLD_P9ECVYGwBEzpyrvZcy-hdrAciIp-aU", "expires_in": 179999, "scope": "USER_API", "id_token": "eyJhbGciOiJSUzI1NiJ9.eyJzdWIiOiJjMGQ3ZWJiYWU4NjlhNzY3ODExODMzMTA3NjgwODg1NDNEa29sREx6clNCIiwic2NvcGUiOiJjMGQ3ZWJiYWU4NjlhNzY3ODExODMzMTA3NjgwODg1NDNEa29sREx6clNCIDEyMzQ2MTExMUAxMy5jb20gMTU4MDExMTExMDAiLCJsb2dpbk5hbWUiOiJ0ZXN0MDI3IiwiY3VzdG9tZXJJZCI6IjQ0MTIxNjU2Mjk4NDE5NTY4MTkiLCJleHAiOjE2NTY1MDYwODAsImp0aSI6InZRN0Uxa0xPTzVpQ3ZuR2JYTUdkZWciLCJpYXQiOjE2NTYzMjYwODEsIm5iZiI6MTY1NjMyNjAyMX0.CW3d41c7oGP23FU5DKGyiX553qLea09oYS4s-dISnse9iE-gGjZxUEqXlHSgfSERES9VeaaVwXEUqPOGKkHEEW0fQKcS82WTepiy1QHB0WeRzqKQQY9t38Rp-v_uMlpKLhnrfK_q_Q1A9ak5kDlpvidp2p5I84NmnisiQmGW7ep3xzs9V7axV9ump207ek5Bl1fs1kZ2gOUTHyWuQ0XoIDF6NHmUjtpA31jc5a13o-UIgX1Bd3ZNjmFiwm4EQ3xyZci72w0rTV7EyRa4KU7KyBjv-QJGv8T2Y4e2GnI-BiqWsaE1wtImhvXRRQ__MT_lRDph87-7zA4cTWEsZJRSXg" } }無綁定關係
{ "success": true, "code": "Operation.Success", "message": "Operation.Success", "requestId": "1658980728774$5abe2ca5-a666-dc36-e6eb-2b97e2aa2d0e", "data": { "fId": "202207281158486517671753087716352_X_ABD", "flowType": "NEED_LOGIN_OR_REGISTOR", "additional": null } }傳遞了ID:xx格式的state跳轉到業務應用中
{ "success": true, "code": "Operation.Success", "message": "Operation.Success", "requestId": "1658980728774$5abe2ca5-a666-dc36-e6eb-2b97e2aa2d0e", "data": { "redirectUrl": "http://xxx.com/social/callback?idaasAppId=xx&code=xxx&state=xxx" } }微信小程式登入
靜默登入
靜默登入的原理是通過小程式的Wx.login擷取到臨時
code後,直接去服務端查詢對應的Openid和Unionid,再去查詢是否有綁定關係,如果有則驗證使用者狀態後登入成功,否則登入失敗,靜默登入失敗無後續流程。只要沒有正常返回使用者Token都認為是靜默登入失敗,包括帳號異常、無綁定關係等。 注意:CIAM中小程式授權登入是基於Unionid關聯唯一微信使用者,因此在對接小程式登入時,務必保證小程式已經綁定到微信開放平台帳號下,否則無法正常使用CIAM的小程式登入。介面地址
Request URI:
POST/api/bff/v1.2/developer/ciam/login/miniprogram/silentContent-Type: application/json請求參數
參數名
類型
必填
內容描述
loginCode
String
是
微信小程式中通過 wx.login擷取的臨時登入憑證
code(此code不能重複使用)。idaasAppId
String
是
應用ID,對應控制台應用管理-應用列表中的應用ID。
enterpriseAuthId
String
是
認證源ID,對應控制台認證源列表中的認證源ID。
deviceId
String
否
可選,小程式端裝置ID。
userType
String
否
自訂使用者類型,預設為普通使用者。
{ "loginCode": "033nOZZv3GFRJY2Iwf3w3RrQdn1nOZZI", "idaasAppId": "{{idaasAppId}}", "enterpriseAuthId": "{{enterpriseAuthId}}" }返回參數
靜默登入成功
{ "success": true, "code": "Operation.Success", "message": "Operation.Success", "requestId": "1656040913922$ca04c8b1-76ea-f3bd-599a-66c3d445259b", "data": { "userId": null, "uuid": "c0d7ebbae869a76781183310768088543DkolDLzrSB", "access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6IjkxMGJkMTY4MzFhOTdhZDRhYjdlMGRjMmYzNDY5NTJiaXF6UVdEWWZMbz****.eyJjaXBoZXJUZXh0IjoiVkh3YXpxZTdVb1owNEs5TTlnN2pqLzUvTEhSc2ZyOG1wVHU0TWdUckYwTGJLZ0ZLaHl0ckRsTktUa2FYUzMxRU1kRE1GWE1iWlZLYXd2SzM2OWk1SGZzZk1rSjcyRHFnbCtUMHZTVzFKRG9mVEFpcm1POWJOQ0pWQ29tamxqbGp4dmRHalNET1BtNlhZeEtqWGFrelhnSUJxNlhhNmFrWmN6MDNKT0NUWGxrWHpWWVpYUjg3SEo4SzV2SU5WTW1pUi9xNWgxVVZ4SnFrajIvQmRpNHFDSmt6cEhrN3UybTFUL09RblFIR1pBL3FKazhya1hMTmMxVVE3dHlLYlhTbk9OblA1Wmh2Vlp0RXBwem5Xb3oxYU1lQktqbmxOSnpEWGExQlJ1RDNtTXZpM202ZUFrUXJaNVMzakI4M09haVZ0dUtRQnhvVXhHTXVrNGV0Q0pQK2ZzLzFpWW1xNGpsc2M0NkpXNGdVSGc0bU5RbHBHRGJsWEtCMVowMVMrY3A0IiwiZGF0YUNpcGhlckFsZyI6IkRFRkFVTFQiLCJ0ZW5hbnRLZXlVdWlkIjoiN2FiNDI3ZTEzNDRkZGUwMWM5Zjk3NDcyNzYwMzg0YWJwZnRLTWFuRkVGSCJ9.5QXEYp6GlgomFF08zFUkwNt-8cwDPSBV0UpAsg3jRtg", "token_type": "bearer", "refresh_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6IjkxMGJkMTY4MzFhOTdhZDRhYjdlMGRjMmYzNDY5NTJiaXF6UVdEWWZMbzUifQ.eyJjaXBoZXJUZXh0IjoiVkh3YXpxZTdVb1owNEs5TTlnN2pqLzUvTEhSc2ZyOG1wVHU0TWdUckYwTGJLZ0ZLaHl0ckRsTktUa2FYUzMxRU1kRE1GWE1iWlZLYXd2SzM2OWk1SGZzZk1rSjcyRHFnbCtUMHZTVzFKRG9mVEFpcm1POWJOQ0pWQ29tamxqbGp4dmRHalNET1BtNlhZeEtqWGFrelhxYWdsOEdINkJXNEF4eTgrYWpOVXl5T0JCeFB6NGRxNmcwRlNvRTJTVGpmclNSZ2lGS0M3Y25YVGFoVXlJVTE0c1Q5QUgwckVIVko3UnY3RVNQYXdrL0dOZ3d4b2tvd25yczMyUEh3RXFGNXlUT3hDQk9kTG1IWXNWMFRHR2FHaTFWcUpERzh2Ui9JOXBtdmZnZlVHUGFGRUJjTVZmVlRBMU1nVWN0cWNpQnlpQTVrSng5QTVuNG9SVXdnMFZ1MWorcEhZQnFUTkp1SVpUQWttWElhcjQyanhHNFdFMVlscC93SUR3NlFFeHR0a3JrUE8rMGdka0llVGttQ0JybGVOZ3MxaVROckIyNUVvRGJwektxcWZyMUhoQ3VjK0JTTmVKYTdmakNmN0VkOCIsImRhdGFDaXBoZXJBbGciOiJERUZBVUxUIiwidGVuYW50S2V5VXVpZCI6IjdhYjQyN2UxMzQ0ZGRlMDFjOWY5NzQ3Mjc2MDM4NGFicGZ0S01hbkZFRkgifQ.NkmM3xdRMq2xkI_j1A1E7TYUsPZsJn6J2wmJ2gj7Gg4", "expires_in": 179999, "scope": "USER_API", "id_token": "eyJhbGciOiJSUzI1NiJ9.eyJzdWIiOiJjMGQ3ZWJiYWU4NjlhNzY3ODExODMzMTA3NjgwODg1NDNEa29sREx6clNCIiwic2NvcGUiOiJjMGQ3ZWJiYWU4NjlhNzY3ODExODMzMTA3NjgwODg1NDNEa29sREx6clNCIDEyMzQ2MTExMUAxMy5jb20gMTU4MDExMTExMDAiLCJsb2dpbk5hbWUiOiJ0ZXN0MDI3IiwiY3VzdG9tZXJJZCI6IjQ0MTIxNjU2Mjk4NDE5NTY4MTkiLCJleHAiOjE2NTY1MDYwODAsImp0aSI6InZRN0Uxa0xPTzVpQ3ZuR2JYTUdkZWciLCJpYXQiOjE2NTYzMjYwODEsIm5iZiI6MTY1NjMyNjAyMX0.CW3d41c7oGP23FU5DKGyiX553qLea09oYS4s-dISnse9iE-gGjZxUEqXlHSgfSERES9VeaaVwXEUqPOGKkHEEW0fQKcS82WTepiy1QHB0WeRzqKQQY9t38Rp-v_uMlpKLhnrfK_q_Q1A9ak5kDlpvidp2p5I84NmnisiQmGW7ep3xzs9V7axV9ump207ek5Bl1fs1kZ2gOUTHyWuQ0XoIDF6NHmUjtpA31jc5a13o-UIgX1Bd3ZNjmFiwm4EQ3xyZci72w0rTV7EyRa4KU7KyBjv-QJGv8T2Y4e2GnI-BiqWsaE1wtImhvXRRQ__MT_lRDph87-7zA4cTWEsZJRSXg" } }靜默登入失敗(只要沒有正常返回使用者
Token都認為是靜默登入失敗,包括帳號異常、無綁定關係等)。說明靜默登入失敗會將微信使用者資訊回傳給業務端,供業務端使用(非必須)。
{ "success": false, "code": "Operation.Failure", "message": "Operation.Failure.Mini.Program.Silent.Login", "requestId": "1656572265429$49b433a9-219a-910a-0323-2af4f1f1a9ce", "data": { "unionid": "o89vut2y09r3zcDIhxoU6sMdjmiw", "openid": "oVq2f4m1pC1Z8rhxYNzTtsWKTJFI" } }參數名
類型
樣本
描述
unionid
String
微信使用者的
unionid。openid
String
微信使用者的
openid。授權登入
授權登入的原理是通過小程式的Wx.login擷取到臨時
code後,再通過Wx.getUserProfile擷取到微信使用者的加密資訊,然後去服務端通過LoginCode查詢對應的openid和unionid和session_key,最後再根據session_key解碼使用者的資訊,擷取到使用者資訊後判斷是否有綁定關係,如果有則登入成功,否則會進行下一步流程,比如登入註冊。介面地址
Request URI:
POST/api/bff/v1.2/developer/ciam/login/miniprogram/authorizedContent-Type: application/json請求參數
參數名
類型
必填
內容描述
loginCode
String
是
微信小程式中通過 wx.Login擷取的 臨時登入憑證
code(此code不能重複使用)。idaasAppId
String
是
應用ID,對應控制台應用管理-應用列表中的應用ID。
enterpriseAuthId
String
是
認證源ID,對應控制台認證源列表中的認證源ID。
encryptedData
String
是
包括敏感性資料在內的完整使用者資訊的加密資料,通過 wx.getUserProfile介面擷取,參考:https://developers.weixin.qq.com/miniprogram/dev/api/open-api/user-info/wx.getUserProfile.html。
iv
String
是
密碼編譯演算法的初始向量,通過 Wx.getUserProfile介面擷取,參考:
https://developers.weixin.qq.com/miniprogram/dev/api/open-api/user-info/wx.getUserProfile.html。
deviceId
String
否
可選,小程式端裝置ID。
userType
String
否
自訂使用者類型,預設為普通使用者。
agreeConsent
Boolean
否
使用者是否勾選條款(當應用配置了相應條款,此參數必傳)。
{ "loginCode": "063oewll2JUCH84Idiol2sxzFd0oewl4", "idaasAppId": "{{idaasAppId}}", "enterpriseAuthId": "{{enterpriseAuthId}}", "encryptedData": "Wp85WrAol3Xq8H/gm0xl5ux25ZZ4snh1uF3wjJ1KfzDP6BLqERNLw1f2wOQ/GRPgBnTUgJXuMUYKVGRY099graBknp0dbyfMoIS1NllnlrwVmrikhnSWwwU0X9iFig9u6fSUtUK69L80hALQ3H0GPDmNo64MWfd3e/bUy1Gfr2Mw2N9useithN6nbvFQlRZDotIb7Yr3fNPYpjXc+a1q/VCf/XYYUR+1gBWd/xXbFBYbrm+1iYbJomNEfRLcgSCU/pNYTzAgmRxn+bt/KUCiuDWXxLjJl1vySmgPre6Use4XJY9jwQIf+EB6C2ja2WQK8pk2wKCmhWoSZxDRoSUZ8gQXOqk6Ef0rWiazte5ibIcw/j5ridkqDctYyOMU1J4DNdRxjohTTgx/3t5BTpzQNcKwuA+SXcj8CRv2kPhgVUM=", "iv": "Gv3JeogqQ5eWM93vWSKWPQ==", "agreeConsent": true }返回參數
有綁定關係
{ "success": true, "code": "Operation.Success", "message": "Operation.Success", "requestId": "1656040913922$ca04c8b1-76ea-f3bd-599a-66c3d445259b", "data": { "userId": null, "uuid": "c0d7ebbae869a76781183310768088543DkolDLzrSB", "access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6IjkxMGJkMTY4MzFhOTdhZDRhYjdlMGRjMmYzNDY5NTJiaXF6UVdEWWZMbz****.eyJjaXBoZXJUZXh0IjoiVkh3YXpxZTdVb1owNEs5TTlnN2pqLzUvTEhSc2ZyOG1wVHU0TWdUckYwTGJLZ0ZLaHl0ckRsTktUa2FYUzMxRU1kRE1GWE1iWlZLYXd2SzM2OWk1SGZzZk1rSjcyRHFnbCtUMHZTVzFKRG9mVEFpcm1POWJOQ0pWQ29tamxqbGp4dmRHalNET1BtNlhZeEtqWGFrelhnSUJxNlhhNmFrWmN6MDNKT0NUWGxrWHpWWVpYUjg3SEo4SzV2SU5WTW1pUi9xNWgxVVZ4SnFrajIvQmRpNHFDSmt6cEhrN3UybTFUL09RblFIR1pBL3FKazhya1hMTmMxVVE3dHlLYlhTbk9OblA1Wmh2Vlp0RXBwem5Xb3oxYU1lQktqbmxOSnpEWGExQlJ1RDNtTXZpM202ZUFrUXJaNVMzakI4M09haVZ0dUtRQnhvVXhHTXVrNGV0Q0pQK2ZzLzFpWW1xNGpsc2M0NkpXNGdVSGc0bU5RbHBHRGJsWEtCMVowMVMrY3A0IiwiZGF0YUNpcGhlckFsZyI6IkRFRkFVTFQiLCJ0ZW5hbnRLZXlVdWlkIjoiN2FiNDI3ZTEzNDRkZGUwMWM5Zjk3NDcyNzYwMzg0YWJwZnRLTWFuRkVGSCJ9.5QXEYp6GlgomFF08zFUkwNt-8cwDPSBV0UpAsg3jRtg", "token_type": "bearer", "refresh_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6IjkxMGJkMTY4MzFhOTdhZDRhYjdlMGRjMmYzNDY5NTJiaXF6UVdEWWZMbzUifQ.eyJjaXBoZXJUZXh0IjoiVkh3YXpxZTdVb1owNEs5TTlnN2pqLzUvTEhSc2ZyOG1wVHU0TWdUckYwTGJLZ0ZLaHl0ckRsTktUa2FYUzMxRU1kRE1GWE1iWlZLYXd2SzM2OWk1SGZzZk1rSjcyRHFnbCtUMHZTVzFKRG9mVEFpcm1POWJOQ0pWQ29tamxqbGp4dmRHalNET1BtNlhZeEtqWGFrelhxYWdsOEdINkJXNEF4eTgrYWpOVXl5T0JCeFB6NGRxNmcwRlNvRTJTVGpmclNSZ2lGS0M3Y25YVGFoVXlJVTE0c1Q5QUgwckVIVko3UnY3RVNQYXdrL0dOZ3d4b2tvd25yczMyUEh3RXFGNXlUT3hDQk9kTG1IWXNWMFRHR2FHaTFWcUpERzh2Ui9JOXBtdmZnZlVHUGFGRUJjTVZmVlRBMU1nVWN0cWNpQnlpQTVrSng5QTVuNG9SVXdnMFZ1MWorcEhZQnFUTkp1SVpUQWttWElhcjQyanhHNFdFMVlscC93SUR3NlFFeHR0a3JrUE8rMGdka0llVGttQ0JybGVOZ3MxaVROckIyNUVvRGJwektxcWZyMUhoQ3VjK0JTTmVKYTdmakNmN0VkOCIsImRhdGFDaXBoZXJBbGciOiJERUZBVUxUIiwidGVuYW50S2V5VXVpZCI6IjdhYjQyN2UxMzQ0ZGRlMDFjOWY5NzQ3Mjc2MDM4NGFicGZ0S01hbkZFRkgifQ.NkmM3xdRMq2xkI_j1A1E7TYUsPZsJn6J2wmJ2gj7Gg4", "expires_in": 179999, "scope": "USER_API", "id_token": "eyJhbGciOiJSUzI1NiJ9.eyJzdWIiOiJjMGQ3ZWJiYWU4NjlhNzY3ODExODMzMTA3NjgwODg1NDNEa29sREx6clNCIiwic2NvcGUiOiJjMGQ3ZWJiYWU4NjlhNzY3ODExODMzMTA3NjgwODg1NDNEa29sREx6clNCIDEyMzQ2MTExMUAxMy5jb20gMTU4MDExMTExMDAiLCJsb2dpbk5hbWUiOiJ0ZXN0MDI3IiwiY3VzdG9tZXJJZCI6IjQ0MTIxNjU2Mjk4NDE5NTY4MTkiLCJleHAiOjE2NTY1MDYwODAsImp0aSI6InZRN0Uxa0xPTzVpQ3ZuR2JYTUdkZWciLCJpYXQiOjE2NTYzMjYwODEsIm5iZiI6MTY1NjMyNjAyMX0.CW3d41c7oGP23FU5DKGyiX553qLea09oYS4s-dISnse9iE-gGjZxUEqXlHSgfSERES9VeaaVwXEUqPOGKkHEEW0fQKcS82WTepiy1QHB0WeRzqKQQY9t38Rp-v_uMlpKLhnrfK_q_Q1A9ak5kDlpvidp2p5I84NmnisiQmGW7ep3xzs9V7axV9ump207ek5Bl1fs1kZ2gOUTHyWuQ0XoIDF6NHmUjtpA31jc5a13o-UIgX1Bd3ZNjmFiwm4EQ3xyZci72w0rTV7EyRa4KU7KyBjv-QJGv8T2Y4e2GnI-BiqWsaE1wtImhvXRRQ__MT_lRDph87-7zA4cTWEsZJRSXg" } }無綁定關係(需要登入或者註冊)
重要微信小程式的授權登入比較特殊,當沒有綁定關係或者有綁定關係但是綁定的使用者不存在(可能被邏輯刪除,或者其他原因引起的髒資料)時,不會返回
FlowType,而是會返回一個Operation.Failure.User.Not.Exist異常碼,同時data中會將FId返回。 也就是說,小程式在開發時,需要判斷該介面的返回錯誤資訊,如果message返回的是Operation.Failure.User.Not.Exist則認為當前流程存在下一步,即手機號一鍵登入。{ "success": false, "code": "Operation.Failure.Social.Login", "message": "Operation.Failure.User.Not.Exist", "requestId": "1656572612543$ad6dff47-af68-1296-c65b-28e84cf59579", "data": { "fId": "202206301503325238257221755438080_X_ABD" } }參數名
類型
樣本
描述
fId
String
流程ID,下一個流程傳回來。
手機號一鍵登入
手機號一鍵登入的原理是通過小程式的wx.login擷取到臨時
code後,再通過wx.getPhoneNumber擷取到微信使用者的手機號加密資訊或者手機號code,然後去服務端通過loginCode查詢對應的Openid和Unionid和Session_key,最後再判斷是否傳遞PhoneNumberCode,如果傳了則根據該code去微信換取使用者的真實手機號,否則根據Session_key解碼使用者的手機號資訊,擷取到使用者資訊後判斷是否有綁定關係,如果有則登入成功,否則會進行下一步流程,比如登入註冊。介面地址
Request URI:
POST/api/bff/v1.2/developer/ciam/login/miniprogram/phoneContent-Type: application/json請求參數
參數名
類型
必填
內容描述
fId
String
否
上一步流程(如果有)產生的
Fid。loginCode
String
是
微信小程式中通過 Wx.login擷取的 臨時登入憑證
code(此code不能重複使用)。idaasAppId
String
是
應用ID,對應控制台應用管理-應用列表中的應用ID。
enterpriseAuthId
String
是
認證源ID,對應控制台認證源列表中的認證源ID。
phoneNumberCode
String
是
微信小程式中通過 GetPhoneNumber擷取到的
code,參考:https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/getPhoneNumber.html。encryptedData
String
是
包括敏感性資料在內的完整使用者資訊的加密資料,通過 GetPhoneNumber擷取,參考:https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/deprecatedGetPhoneNumber.html。
iv
String
是
微信小程式中通過 GetPhoneNumber擷取到的密碼編譯演算法的初始向量,參考:https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/deprecatedGetPhoneNumber.html。
deviceId
String
否
可選,小程式端裝置ID。
userType
String
否
自訂使用者類型,預設為普通使用者
agreeConsent
Boolean
否
使用者是否勾選條款(當應用配置了相應條款,此參數必傳)
{ "fId": "{{fId}}", "loginCode": "023arx000zEEHiO6N3arx0D", "idaasAppId": "{{idaasAppId}}", "enterpriseAuthId": "{{enterpriseAuthId}}", "phoneNumberCode": "c773d67f9ca3538ae7da881f0df96c2000bdedc4e", "encryptedData": "", "iv": "", "agreeConsent": true }返回參數
有綁定關係
{ "success": true, "code": "Operation.Success", "message": "Operation.Success", "requestId": "1656040913922$ca04c8b1-76ea-f3bd-599a-66c3d445259b", "data": { "userId": null, "uuid": "c0d7ebbae869a76781183310768088543DkolDLzrSB", "access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6IjkxMGJkMTY4MzFhOTdhZDRhYjdlMGRjMmYzNDY5NTJiaXF6UVdEWWZMbz****.eyJjaXBoZXJUZXh0IjoiVkh3YXpxZTdVb1owNEs5TTlnN2pqLzUvTEhSc2ZyOG1wVHU0TWdUckYwTGJLZ0ZLaHl0ckRsTktUa2FYUzMxRU1kRE1GWE1iWlZLYXd2SzM2OWk1SGZzZk1rSjcyRHFnbCtUMHZTVzFKRG9mVEFpcm1POWJOQ0pWQ29tamxqbGp4dmRHalNET1BtNlhZeEtqWGFrelhnSUJxNlhhNmFrWmN6MDNKT0NUWGxrWHpWWVpYUjg3SEo4SzV2SU5WTW1pUi9xNWgxVVZ4SnFrajIvQmRpNHFDSmt6cEhrN3UybTFUL09RblFIR1pBL3FKazhya1hMTmMxVVE3dHlLYlhTbk9OblA1Wmh2Vlp0RXBwem5Xb3oxYU1lQktqbmxOSnpEWGExQlJ1RDNtTXZpM202ZUFrUXJaNVMzakI4M09haVZ0dUtRQnhvVXhHTXVrNGV0Q0pQK2ZzLzFpWW1xNGpsc2M0NkpXNGdVSGc0bU5RbHBHRGJsWEtCMVowMVMrY3A0IiwiZGF0YUNpcGhlckFsZyI6IkRFRkFVTFQiLCJ0ZW5hbnRLZXlVdWlkIjoiN2FiNDI3ZTEzNDRkZGUwMWM5Zjk3NDcyNzYwMzg0YWJwZnRLTWFuRkVGSCJ9.5QXEYp6GlgomFF08zFUkwNt-8cwDPSBV0UpAsg3jRtg", "token_type": "bearer", "refresh_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6IjkxMGJkMTY4MzFhOTdhZDRhYjdlMGRjMmYzNDY5NTJiaXF6UVdEWWZMbzUifQ.eyJjaXBoZXJUZXh0IjoiVkh3YXpxZTdVb1owNEs5TTlnN2pqLzUvTEhSc2ZyOG1wVHU0TWdUckYwTGJLZ0ZLaHl0ckRsTktUa2FYUzMxRU1kRE1GWE1iWlZLYXd2SzM2OWk1SGZzZk1rSjcyRHFnbCtUMHZTVzFKRG9mVEFpcm1POWJOQ0pWQ29tamxqbGp4dmRHalNET1BtNlhZeEtqWGFrelhxYWdsOEdINkJXNEF4eTgrYWpOVXl5T0JCeFB6NGRxNmcwRlNvRTJTVGpmclNSZ2lGS0M3Y25YVGFoVXlJVTE0c1Q5QUgwckVIVko3UnY3RVNQYXdrL0dOZ3d4b2tvd25yczMyUEh3RXFGNXlUT3hDQk9kTG1IWXNWMFRHR2FHaTFWcUpERzh2Ui9JOXBtdmZnZlVHUGFGRUJjTVZmVlRBMU1nVWN0cWNpQnlpQTVrSng5QTVuNG9SVXdnMFZ1MWorcEhZQnFUTkp1SVpUQWttWElhcjQyanhHNFdFMVlscC93SUR3NlFFeHR0a3JrUE8rMGdka0llVGttQ0JybGVOZ3MxaVROckIyNUVvRGJwektxcWZyMUhoQ3VjK0JTTmVKYTdmakNmN0VkOCIsImRhdGFDaXBoZXJBbGciOiJERUZBVUxUIiwidGVuYW50S2V5VXVpZCI6IjdhYjQyN2UxMzQ0ZGRlMDFjOWY5NzQ3Mjc2MDM4NGFicGZ0S01hbkZFRkgifQ.NkmM3xdRMq2xkI_j1A1E7TYUsPZsJn6J2wmJ2gj7Gg4", "expires_in": 179999, "scope": "USER_API", "id_token": "eyJhbGciOiJSUzI1NiJ9.eyJzdWIiOiJjMGQ3ZWJiYWU4NjlhNzY3ODExODMzMTA3NjgwODg1NDNEa29sREx6clNCIiwic2NvcGUiOiJjMGQ3ZWJiYWU4NjlhNzY3ODExODMzMTA3NjgwODg1NDNEa29sREx6clNCIDEyMzQ2MTExMUAxMy5jb20gMTU4MDExMTExMDAiLCJsb2dpbk5hbWUiOiJ0ZXN0MDI3IiwiY3VzdG9tZXJJZCI6IjQ0MTIxNjU2Mjk4NDE5NTY4MTkiLCJleHAiOjE2NTY1MDYwODAsImp0aSI6InZRN0Uxa0xPTzVpQ3ZuR2JYTUdkZWciLCJpYXQiOjE2NTYzMjYwODEsIm5iZiI6MTY1NjMyNjAyMX0.CW3d41c7oGP23FU5DKGyiX553qLea09oYS4s-dISnse9iE-gGjZxUEqXlHSgfSERES9VeaaVwXEUqPOGKkHEEW0fQKcS82WTepiy1QHB0WeRzqKQQY9t38Rp-v_uMlpKLhnrfK_q_Q1A9ak5kDlpvidp2p5I84NmnisiQmGW7ep3xzs9V7axV9ump207ek5Bl1fs1kZ2gOUTHyWuQ0XoIDF6NHmUjtpA31jc5a13o-UIgX1Bd3ZNjmFiwm4EQ3xyZci72w0rTV7EyRa4KU7KyBjv-QJGv8T2Y4e2GnI-BiqWsaE1wtImhvXRRQ__MT_lRDph87-7zA4cTWEsZJRSXg" } }無綁定關係(需要登入或者註冊)
重要微信小程式的手機號一鍵登入比較特殊,當沒有綁定關係或者有綁定關係但是綁定的使用者不存在(可能被邏輯刪除,或者其他原因引起的髒資料)時,不會返回
FlowType,而是會返回一個Operation.Failure.User.Not.Exist異常碼,同時data中會將FId返回。 也就是說,小程式在開發時,需要判斷該介面的返回錯誤資訊,如果message返回的是Operation.Failure.User.Not.Exist則認為當前流程存在下一步,即進入h5的登入註冊頁面。{ "success": false, "code": "Operation.Failure.Social.Login", "message": "Operation.Failure.User.Not.Exist", "requestId": "1656573286977$6584dc2c-78b9-d12c-a6db-21ff9a90dac9", "data": { "fId": "202206301514226999141257494492160_X_ABD", "phoneNumber": "xxxx" } }參數名
類型
描述
fId
String
流程ID,下一個流程傳回來。
phoneNumber
String
當前識別出的手機號,可能前端需要用於展示。
APP端
擷取accessToken
當手機端需要使用手機號碼認證,或者IFAA認證時,需要給手機端進行授權,手機端擷取此
Token資訊可以與安全認證產品互動。介面地址
Request URI:
POST/api/bff/v1.2/developer/ciam/login/app/safeauth/fetch_accesstokenContent-Type: application/json請求參數
參數名
類型
必填
內容描述
applicationExternalId
String
是
在安全認證建立的Appid。
mobileExtendParamsJson
String
是
手機端JSON資訊。
mobileExtendParamsJsonSign
String
是
手機端JSON簽名資訊。
userId
String
否
手機端使用者資訊。
返回參數
參數名
類型
樣本
內容說明
access_token
String
eyJhbGciOiJIUzI1N**** ... ... PoKL1O0j0
安全認證的
AccessToken資訊。expires_in
Long
3600
Token到期時間,單位:秒。錯誤異常列表
errorCode
ErrorMessage
描述
Operation.Success
Operation.Success
成功。
Params.Blank
Params.Blank.ApplicationExternalId
缺少參數
ApplicationExternalId。
Params.Blank
Params.Blank.MobileExtendParamsJson
缺少參數MobileExtendParamsJson。
Params.Blank
Params.Blank.MobileExtendParamsJsonSign
缺少參數MobileExtendParamsJsonSign。
Operation.Failure
Operation.Failure.RemoteServerCommonError
調用安全認證服務失敗。
擷取fId
當點擊更多登入方式,需要先擷取一個
FId。介面地址
Request URI:
POST/api/bff/v1.2/developer/ciam/login/app/getFidContent-Type: application/json請求參數
參數名
類型
樣本
內容說明
deviceId
String
xxxxx
裝置ID。
response_type
String
code
響應類型,參考OAuth協議的
response_type。userType
String
否
自訂使用者類型,預設為普通使用者。
返回參數
參數名
類型
樣本
內容說明
fId
String
HbGciOiJIUzI1NiIsI ... ...
進入登入頁面需要的流程ID。
flowType
String
LOGIN_NEED_REGISTER
下一步流程類型。
錯誤異常列表
errorCode
ErrorMessage
描述。
Operation.Success
Operation.Success
成功。
號碼、人臉、指紋認證
當手機端需要使用手機號碼認證,或者IFAA認證時,手機端與安全認證通過後會給使用者產生IDToken,此介面驗證完IDToken,IdaaS就會認為認證成功且簽發token資訊。
介面地址
Request URI:
POST/api/bff/v1.2/developer/ciam/login/app/safeauth/loginContent-Type: application/json請求參數
參數名
類型
必填
內容描述
applicationExternalId
String
是
在安全認證建立的Appid。
idToken
String
是
使用者在安全認證簽發的
Token。userType
String
否
自訂使用者類型,預設為普通使用者。
返回參數
參數名
類型
樣本
內容說明
id_token
String
HbGciOiJIUzI1NiIsI ... ... PoKL1O0
使用者身份資訊Token。
access_token
String
EyJhbGciOiJIUzI1N**** ... ... PoKL1O0j0
使用者訪問
Token。refresh_token
String
YJhbGciOiJIUhbGciOiJIUzI1NiIsI ... ...
重新整理使用者
Token使用。scope
String
Read
匹配值。
expires_in
Long
3600
Token到期時間,單位:秒。錯誤異常列表
errorCode
ErrorMessage
描述。
Operation.Success
Operation.Success
成功。
Params.Blank
Params.Blank.IdToken
參數
IDToken不能都為空白。Params.Blank
Params.Blank.ApplicationExternalId
缺少參數ApplicationExternalId
Operation.Failure
Operation.Failure.RemoteServerCommonError
依賴安全認證服務調用失敗。
Operation.Failure
Operation.Failure.No.User.Bind
安全認證沒有綁定過帳號資訊。
Operation.Failure
Operation.Failure.IDaaS.NoUser
CIAM系統沒有綁定過帳號資訊。
Operation.Failure
Operation.Failure.Service.Internal.Error
服務端內部錯誤。
手勢認證
當手機端需要使用手勢認證時,在使用者中心配置手勢,即可使用手勢登入。
介面地址
Request URI:
POST/api/bff/v1.2/developer/ciam/login/app/gesture/loginContent-Type: application/json請求參數
參數名
類型
必填
內容描述
gestureSign
String
是
使用使用者名稱對手勢做加密。
userName
String
是
使用者名稱。
userType
String
否
自訂使用者類型,預設為普通使用者。
返回參數
參數名
類型
樣本
內容說明
id_token
String
HbGciOiJIUzI1NiIsI ... ... PoKL1O0
使用者身份資訊
Token。access_token
String
EyJhbGciOiJIUzI1N**** ... ... PoKL1O0j0
使用者訪問
Token。refresh_token
String
YJhbGciOiJIUhbGciOiJIUzI1NiIsI ... ...
重新整理使用者
Token使用。scope
String
Read
匹配值。
expires_in
Long
3600
Token到期時間,單位:秒錯誤異常列表
errorCode
ErrorMessage
描述
Operation.Success
Operation.Success
成功。
Params.Blank
Params.Blank.Gesture.Sign
參數
Sign不能都為空白。Params.Blank
Params.Blank.User.Username
缺少參數
Username。Operation.Failure
Operation.Failure.User.Not.Exist
不存在的使用者。
Operation.Failure
Operation.Failure.User.Not.Bind.Gesture
使用者沒綁定過手勢。
Operation.Failure
Operation_Failure.Gesture.Error
使用者輸入的手勢錯誤。
Operation.Failure
Operation.Failure.Service.Internal.Error
服務端內部錯誤。
註冊
註冊-發送驗證碼
介面地址
Request URI:
POST/api/bff/v1.2/developer/ciam/register/obtain_codeContent-Type: application/json請求參數
說明若開啟了簡訊/郵件防暴 ,圖形驗證碼則在發送驗證碼次數超過風控閾值時需要驗證圖形驗證碼。
{ "fId": "{{fId}}", "type":"SMS", "phoneNumber":"1510000****", "phoneRegion":"", "email":"111**@qq.com", "userType":"", "captchaCode":"", "captchaText":"" }參數名
類型
必須
內容說明
fId
String
是
上一步流程的
FId。type
String
是
驗證碼類型。SMS代表簡訊,EMAIL代表郵箱。
phoneNumber
String
否
手機號,當Type傳 SMS時該值必傳。
phoneRegion
String
否
手機號區號。
email
String
否
郵箱,當Type傳 EMAIL時該值必傳。
captchaCode
String
否
圖形驗證碼的
code,由擷取驗證碼的介面返回,當存在圖形驗證碼時必傳。captchaText
String
否
使用者輸入的圖形驗證碼,當存在圖形驗證碼時必傳。
userType
String
否
使用者類型,預設不傳即可。
language
String
否
發送驗證碼的語言類型,預設取慣用語言。
engineCode
String
否
發送驗證碼的網關編碼,預設取首選服務商的首選網關。
captchaCode
String
否
圖形驗證碼的唯一標識,通過擷取圖形驗證介面返回。
captchaText
String
否
圖形驗證碼,根據介面中驗證碼圖片顯示的數字進行填寫。
返回參數
{ "success": true, "code": "Operation.Success", "message": "Operation.Success", "requestId": "1654591263236$eb20f2b1-5afe-72ab-1333-8515f5a68dee", "data": { "fId": "202206071641032416438565386055680_X_BDE" } }註冊-驗證碼
介面地址
Request URI:
POST/api/bff/v1.2/developer/ciam/register/submitContent-Type: application/json請求參數
{ "fId": "{{fId}}", "type": "SMS", "code": "000000", "phoneNumber": "1511111****", "phoneRegion": "86", "email": "", "username": "test001", "password": "966966", "userType": "", "response_type": "token", "agreeConsent": true }參數名
類型
必須
內容說明
fId
String
是
上一步流程的
FId。type
String
是
註冊類型。SMS代表簡訊,EMAIL代表郵箱。
phoneNumber
String
否
手機號,上一步用手機發送驗證碼時,本次必傳。
phoneRegion
String
否
手機號區號。
email
String
否
郵箱,上一步用郵箱發送驗證碼時,本次必傳。
code
String
否
郵箱或者手機號的驗證碼,新版本增加的屬性(可以相容舊版本的SmsCode和 EmailCode)。
username
String
否
註冊的使用者名稱(登入使用者名稱)。
password
String
否
使用者密碼。
userType
String
否
使用者類型,預設不傳。
response_type
String
否
當傳
code時,返回授權碼;當傳Token時,返回使用者的Token。agreeConsent
Boolean
是
使用者是否勾選條款(如果未配置條款則可忽略該參數)。
返回參數
{ "success": true, "code": "Operation.Success", "message": "Operation.Success", "requestId": "1656326070459$be264b8d-a6ca-a75c-f224-ade8531cc4af", "data": { "userId": null, "uuid": "c0d7ebbae869a76781183310768088543DkolDLzrSB", "access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6IjkxMGJkMTY4MzFhOTdhZDRhYjdlMGRjMmYzNDY5NTJiaXF6UVdEWWZMbz****.eyJjaXBoZXJUZXh0IjoiVkh3YXpxZTdVb1owNEs5TTlnN2pqLzUvTEhSc2ZyOG1wVHU0TWdUckYwTGJLZ0ZLaHl0ckRsTktUa2FYUzMxRU1kRE1GWE1iWlZLYXd2SzM2OWk1SGZzZk1rSjcyRHFnbCtUMHZTVzFKRG9mVEFpcm1POWJOQ0pWQ29tamxqbGp4dmRHalNET1BtNlhZeEtqWGFrelhxYytRODM3QjNnTlQzbmNJNDY3UExuOHNTNXFJNmdMa1doeWJKZHA0ZXZMaHovUmtuV0RTRXZlNUw3T1Jzd0xoMTdWTGw4SE5Va0Z1TWxDR2FGWVliT3JmL3dHMkpodktNZlZ6ZzFKUTROb1UzWDI4bzR6dHhRclZtWlV3dWo2R1NZcTB0alc0akJlQUErUkV4dkExd3VWUEtSdVJZS0dlZkt3Y0JWOVBxMGlkZjZ0dU04Vjlnd3BpSEtFVnhHM0lXVFVlL0hzb2RxMVVMMTVRZWErcTNvOEpDMitoRGozWE1KOS92Yis2YXo0IiwiZGF0YUNpcGhlckFsZyI6IkRFRkFVTFQiLCJ0ZW5hbnRLZXlVdWlkIjoiN2FiNDI3ZTEzNDRkZGUwMWM5Zjk3NDcyNzYwMzg0YWJwZnRLTWFuRkVGSCJ9.c57U7qi46KnVAPnzk2bgHI9sPoUlk93L5mPOq1WRy_s", "token_type": "bearer", "refresh_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6IjkxMGJkMTY4MzFhOTdhZDRhYjdlMGRjMmYzNDY5NTJiaXF6UVdEWWZMbzUifQ.eyJjaXBoZXJUZXh0IjoiVkh3YXpxZTdVb1owNEs5TTlnN2pqLzUvTEhSc2ZyOG1wVHU0TWdUckYwTGJLZ0ZLaHl0ckRsTktUa2FYUzMxRU1kRE1GWE1iWlZLYXd2SzM2OWk1SGZzZk1rSjcyRHFnbCtUMHZTVzFKRG9mVEFpcm1POWJOQ0pWQ29tamxqbGp4dmRHalNET1BtNlhZeEtqWGFrelh0UjBGQXd3eDdINTRsWldxNzdCdEhmUUd5UHFPZWVhK3pLNWRxeWFTMEdXb0NmRkJ1Q1Q1TEFvTlhTRVFWVlc1ZGp3eGJsRUZrSjhVaXBpYXoxTXI1Z3ZSV3N0NlRNN2xHR09tbEVETjJJbmg5dkluVEpUd0RNeTFOSEo1WDJqaGRwMlNvUlN0QUxONlZpaTVMakh3dHAxQWdqZlZuRlR1aVI3UWVLUTVsTjBkdnVmOEtHYkFoQ2lENngxalg4VERKOE5PRWNYYTYyRHdEQ0UrSDlRQlcxTzlPL1FWUG9TSXVqT1lGU0IyVkNsbGZGemM4RmhLbGZLRlcyZlNYbFRSY05YNDE5djcvNWpxL3RuUU1EMjl4YkoxbTAySmRTb3NacjIvNjR1dEpMOSIsImRhdGFDaXBoZXJBbGciOiJERUZBVUxUIiwidGVuYW50S2V5VXVpZCI6IjdhYjQyN2UxMzQ0ZGRlMDFjOWY5NzQ3Mjc2MDM4NGFicGZ0S01hbkZFRkgifQ.VjrWftgXUmLD_P9ECVYGwBEzpyrvZcy-hdrAciIp-aU", "expires_in": 179999, "scope": "USER_API", "id_token": "eyJhbGciOiJSUzI1NiJ9.eyJzdWIiOiJjMGQ3ZWJiYWU4NjlhNzY3ODExODMzMTA3NjgwODg1NDNEa29sREx6clNCIiwic2NvcGUiOiJjMGQ3ZWJiYWU4NjlhNzY3ODExODMzMTA3NjgwODg1NDNEa29sREx6clNCIDEyMzQ2MTExMUAxMy5jb20gMTU4MDExMTExMDAiLCJsb2dpbk5hbWUiOiJ0ZXN0MDI3IiwiY3VzdG9tZXJJZCI6IjQ0MTIxNjU2Mjk4NDE5NTY4MTkiLCJleHAiOjE2NTY1MDYwODAsImp0aSI6InZRN0Uxa0xPTzVpQ3ZuR2JYTUdkZWciLCJpYXQiOjE2NTYzMjYwODEsIm5iZiI6MTY1NjMyNjAyMX0.CW3d41c7oGP23FU5DKGyiX553qLea09oYS4s-dISnse9iE-gGjZxUEqXlHSgfSERES9VeaaVwXEUqPOGKkHEEW0fQKcS82WTepiy1QHB0WeRzqKQQY9t38Rp-v_uMlpKLhnrfK_q_Q1A9ak5kDlpvidp2p5I84NmnisiQmGW7ep3xzs9V7axV9ump207ek5Bl1fs1kZ2gOUTHyWuQ0XoIDF6NHmUjtpA31jc5a13o-UIgX1Bd3ZNjmFiwm4EQ3xyZci72w0rTV7EyRa4KU7KyBjv-QJGv8T2Y4e2GnI-BiqWsaE1wtImhvXRRQ__MT_lRDph87-7zA4cTWEsZJRSXg", "idaasCode": null, "locked": false, "enabled": false, "sourceApplicationUuid": null, "authId": null, "unionId": null, "openId": null, "phoneRegion": null, "createTime": null, "uamParams": null } }
三、二次認證
驗證碼方式-發送驗證碼
說明當FlowType=NEED_TWO_FACTOR,進入二次認證,僅用於手機號、郵箱驗證碼的二次認證。
介面地址
Request URI:
POST/api/bff/v1.2/developer/ciam/prepare_second_factorContent-Type: application/json請求參數
說明若開啟了簡訊/郵件防暴,圖形驗證碼則在發送驗證碼次數超過風控閾值時需要驗證圖形驗證碼。
{ "fId":"{{fId}}", "type":"SMS", "captchaCode":"", "captchaText":"" }參數名
類型
必須
內容說明
fId
String
是
上一步流程的
FId。type
String
是
二次認證的方式,(目前)可選值:SMS、EMAIL根據選擇的二次認證傳值。
userType
String
否
自訂使用者類型,預設為普通使用者。
language
String
否
發送驗證碼的語言類型,預設取慣用語言。
engineCode
String
否
發送驗證碼的網關編碼,預設取首選服務商的首選網關。
captchaCode
String
否
圖形驗證碼的唯一標識,通過擷取圖形驗證介面返回。
captchaText
String
否
圖形驗證碼,根據介面中驗證碼圖片顯示的數字進行填寫。
返回參數
不支援的二次認證方式
{ "success": false, "code": "Params.Illegal", "message": "Operation.Failure.Unsupport.2fa.Type", "requestId": "1654681888509$40033cb3-9d4f-4a52-e3a3-447c52c80fb1", "data": null }正常
{ "success": true, "code": "Operation.Success", "message": "Operation.Success", "requestId": "1654681964158$6b18049f-68ee-0fbc-7128-d5627b387fad", "data": { "fId": "202206081747411329041361342880768_X_BCD" } }驗證碼方式-驗證碼
介面地址
Request URI:
POST/api/bff/v1.2/developer/ciam/verify_second_factorContent-Type: application/json請求參數
{ "code":"000000", "type":"SMS", "fId":"{{fId}}" }參數名
類型
必須
內容說明
fId
String
是
上一步流程的
FId。type
String
是
二次認證的方式,(目前)可選值:SMS、EMAIL、PWD,根據選擇的二次認證傳值。
code
String
是
手機或者郵箱的驗證碼。
返回參數
{ "success": true, "code": "Operation.Success", "message": "Operation.Success", "requestId": "1656326070459$be264b8d-a6ca-a75c-f224-ade8531cc4af", "data": { "userId": null, "uuid": "c0d7ebbae869a76781183310768088543DkolDLzrSB", "access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6IjkxMGJkMTY4MzFhOTdhZDRhYjdlMGRjMmYzNDY5NTJiaXF6UVdEWWZMbz****.eyJjaXBoZXJUZXh0IjoiVkh3YXpxZTdVb1owNEs5TTlnN2pqLzUvTEhSc2ZyOG1wVHU0TWdUckYwTGJLZ0ZLaHl0ckRsTktUa2FYUzMxRU1kRE1GWE1iWlZLYXd2SzM2OWk1SGZzZk1rSjcyRHFnbCtUMHZTVzFKRG9mVEFpcm1POWJOQ0pWQ29tamxqbGp4dmRHalNET1BtNlhZeEtqWGFrelhxYytRODM3QjNnTlQzbmNJNDY3UExuOHNTNXFJNmdMa1doeWJKZHA0ZXZMaHovUmtuV0RTRXZlNUw3T1Jzd0xoMTdWTGw4SE5Va0Z1TWxDR2FGWVliT3JmL3dHMkpodktNZlZ6ZzFKUTROb1UzWDI4bzR6dHhRclZtWlV3dWo2R1NZcTB0alc0akJlQUErUkV4dkExd3VWUEtSdVJZS0dlZkt3Y0JWOVBxMGlkZjZ0dU04Vjlnd3BpSEtFVnhHM0lXVFVlL0hzb2RxMVVMMTVRZWErcTNvOEpDMitoRGozWE1KOS92Yis2YXo0IiwiZGF0YUNpcGhlckFsZyI6IkRFRkFVTFQiLCJ0ZW5hbnRLZXlVdWlkIjoiN2FiNDI3ZTEzNDRkZGUwMWM5Zjk3NDcyNzYwMzg0YWJwZnRLTWFuRkVGSCJ9.c57U7qi46KnVAPnzk2bgHI9sPoUlk93L5mPOq1WRy_s", "token_type": "bearer", "refresh_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6IjkxMGJkMTY4MzFhOTdhZDRhYjdlMGRjMmYzNDY5NTJiaXF6UVdEWWZMbzUifQ.eyJjaXBoZXJUZXh0IjoiVkh3YXpxZTdVb1owNEs5TTlnN2pqLzUvTEhSc2ZyOG1wVHU0TWdUckYwTGJLZ0ZLaHl0ckRsTktUa2FYUzMxRU1kRE1GWE1iWlZLYXd2SzM2OWk1SGZzZk1rSjcyRHFnbCtUMHZTVzFKRG9mVEFpcm1POWJOQ0pWQ29tamxqbGp4dmRHalNET1BtNlhZeEtqWGFrelh0UjBGQXd3eDdINTRsWldxNzdCdEhmUUd5UHFPZWVhK3pLNWRxeWFTMEdXb0NmRkJ1Q1Q1TEFvTlhTRVFWVlc1ZGp3eGJsRUZrSjhVaXBpYXoxTXI1Z3ZSV3N0NlRNN2xHR09tbEVETjJJbmg5dkluVEpUd0RNeTFOSEo1WDJqaGRwMlNvUlN0QUxONlZpaTVMakh3dHAxQWdqZlZuRlR1aVI3UWVLUTVsTjBkdnVmOEtHYkFoQ2lENngxalg4VERKOE5PRWNYYTYyRHdEQ0UrSDlRQlcxTzlPL1FWUG9TSXVqT1lGU0IyVkNsbGZGemM4RmhLbGZLRlcyZlNYbFRSY05YNDE5djcvNWpxL3RuUU1EMjl4YkoxbTAySmRTb3NacjIvNjR1dEpMOSIsImRhdGFDaXBoZXJBbGciOiJERUZBVUxUIiwidGVuYW50S2V5VXVpZCI6IjdhYjQyN2UxMzQ0ZGRlMDFjOWY5NzQ3Mjc2MDM4NGFicGZ0S01hbkZFRkgifQ.VjrWftgXUmLD_P9ECVYGwBEzpyrvZcy-hdrAciIp-aU", "expires_in": 179999, "scope": "USER_API", "id_token": "eyJhbGciOiJSUzI1NiJ9.eyJzdWIiOiJjMGQ3ZWJiYWU4NjlhNzY3ODExODMzMTA3NjgwODg1NDNEa29sREx6clNCIiwic2NvcGUiOiJjMGQ3ZWJiYWU4NjlhNzY3ODExODMzMTA3NjgwODg1NDNEa29sREx6clNCIDEyMzQ2MTExMUAxMy5jb20gMTU4MDExMTExMDAiLCJsb2dpbk5hbWUiOiJ0ZXN0MDI3IiwiY3VzdG9tZXJJZCI6IjQ0MTIxNjU2Mjk4NDE5NTY4MTkiLCJleHAiOjE2NTY1MDYwODAsImp0aSI6InZRN0Uxa0xPTzVpQ3ZuR2JYTUdkZWciLCJpYXQiOjE2NTYzMjYwODEsIm5iZiI6MTY1NjMyNjAyMX0.CW3d41c7oGP23FU5DKGyiX553qLea09oYS4s-dISnse9iE-gGjZxUEqXlHSgfSERES9VeaaVwXEUqPOGKkHEEW0fQKcS82WTepiy1QHB0WeRzqKQQY9t38Rp-v_uMlpKLhnrfK_q_Q1A9ak5kDlpvidp2p5I84NmnisiQmGW7ep3xzs9V7axV9ump207ek5Bl1fs1kZ2gOUTHyWuQ0XoIDF6NHmUjtpA31jc5a13o-UIgX1Bd3ZNjmFiwm4EQ3xyZci72w0rTV7EyRa4KU7KyBjv-QJGv8T2Y4e2GnI-BiqWsaE1wtImhvXRRQ__MT_lRDph87-7zA4cTWEsZJRSXg", "idaasCode": null, "locked": false, "enabled": false, "sourceApplicationUuid": null, "authId": null, "unionId": null, "openId": null, "phoneRegion": null, "createTime": null, "uamParams": null } }密碼方式-驗證密碼
介面地址
Request URI:
POST/api/bff/v1.2/developer/ciam/verify_second_factorContent-Type: application/json請求參數
{ "password":"966966", "type":"PWD", "fId":"{{fId}}" }參數名
類型
必須
內容說明
fId
String
是
上一步流程的
FId。type
String
是
二次認證的方式,固定為PWD。
password
String
是
使用者輸入的密碼。
返回參數
二次認證失敗
{ "success": false, "code": "Operation.Failure", "message": "Operation.Failure.User.Password.Error", "requestId": "1654747792211$750c5b3e-5dd2-efa1-60a5-1acc88ca1f85", "data": null }二次認證成功
{ "success": true, "code": "Operation.Success", "message": "Operation.Success", "requestId": "1656326070459$be264b8d-a6ca-a75c-f224-ade8531cc4af", "data": { "userId": null, "uuid": "c0d7ebbae869a76781183310768088543DkolDLzrSB", "access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6IjkxMGJkMTY4MzFhOTdhZDRhYjdlMGRjMmYzNDY5NTJiaXF6UVdEWWZMbz****.eyJjaXBoZXJUZXh0IjoiVkh3YXpxZTdVb1owNEs5TTlnN2pqLzUvTEhSc2ZyOG1wVHU0TWdUckYwTGJLZ0ZLaHl0ckRsTktUa2FYUzMxRU1kRE1GWE1iWlZLYXd2SzM2OWk1SGZzZk1rSjcyRHFnbCtUMHZTVzFKRG9mVEFpcm1POWJOQ0pWQ29tamxqbGp4dmRHalNET1BtNlhZeEtqWGFrelhxYytRODM3QjNnTlQzbmNJNDY3UExuOHNTNXFJNmdMa1doeWJKZHA0ZXZMaHovUmtuV0RTRXZlNUw3T1Jzd0xoMTdWTGw4SE5Va0Z1TWxDR2FGWVliT3JmL3dHMkpodktNZlZ6ZzFKUTROb1UzWDI4bzR6dHhRclZtWlV3dWo2R1NZcTB0alc0akJlQUErUkV4dkExd3VWUEtSdVJZS0dlZkt3Y0JWOVBxMGlkZjZ0dU04Vjlnd3BpSEtFVnhHM0lXVFVlL0hzb2RxMVVMMTVRZWErcTNvOEpDMitoRGozWE1KOS92Yis2YXo0IiwiZGF0YUNpcGhlckFsZyI6IkRFRkFVTFQiLCJ0ZW5hbnRLZXlVdWlkIjoiN2FiNDI3ZTEzNDRkZGUwMWM5Zjk3NDcyNzYwMzg0YWJwZnRLTWFuRkVGSCJ9.c57U7qi46KnVAPnzk2bgHI9sPoUlk93L5mPOq1WRy_s", "token_type": "bearer", "refresh_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6IjkxMGJkMTY4MzFhOTdhZDRhYjdlMGRjMmYzNDY5NTJiaXF6UVdEWWZMbzUifQ.eyJjaXBoZXJUZXh0IjoiVkh3YXpxZTdVb1owNEs5TTlnN2pqLzUvTEhSc2ZyOG1wVHU0TWdUckYwTGJLZ0ZLaHl0ckRsTktUa2FYUzMxRU1kRE1GWE1iWlZLYXd2SzM2OWk1SGZzZk1rSjcyRHFnbCtUMHZTVzFKRG9mVEFpcm1POWJOQ0pWQ29tamxqbGp4dmRHalNET1BtNlhZeEtqWGFrelh0UjBGQXd3eDdINTRsWldxNzdCdEhmUUd5UHFPZWVhK3pLNWRxeWFTMEdXb0NmRkJ1Q1Q1TEFvTlhTRVFWVlc1ZGp3eGJsRUZrSjhVaXBpYXoxTXI1Z3ZSV3N0NlRNN2xHR09tbEVETjJJbmg5dkluVEpUd0RNeTFOSEo1WDJqaGRwMlNvUlN0QUxONlZpaTVMakh3dHAxQWdqZlZuRlR1aVI3UWVLUTVsTjBkdnVmOEtHYkFoQ2lENngxalg4VERKOE5PRWNYYTYyRHdEQ0UrSDlRQlcxTzlPL1FWUG9TSXVqT1lGU0IyVkNsbGZGemM4RmhLbGZLRlcyZlNYbFRSY05YNDE5djcvNWpxL3RuUU1EMjl4YkoxbTAySmRTb3NacjIvNjR1dEpMOSIsImRhdGFDaXBoZXJBbGciOiJERUZBVUxUIiwidGVuYW50S2V5VXVpZCI6IjdhYjQyN2UxMzQ0ZGRlMDFjOWY5NzQ3Mjc2MDM4NGFicGZ0S01hbkZFRkgifQ.VjrWftgXUmLD_P9ECVYGwBEzpyrvZcy-hdrAciIp-aU", "expires_in": 179999, "scope": "USER_API", "id_token": "eyJhbGciOiJSUzI1NiJ9.eyJzdWIiOiJjMGQ3ZWJiYWU4NjlhNzY3ODExODMzMTA3NjgwODg1NDNEa29sREx6clNCIiwic2NvcGUiOiJjMGQ3ZWJiYWU4NjlhNzY3ODExODMzMTA3NjgwODg1NDNEa29sREx6clNCIDEyMzQ2MTExMUAxMy5jb20gMTU4MDExMTExMDAiLCJsb2dpbk5hbWUiOiJ0ZXN0MDI3IiwiY3VzdG9tZXJJZCI6IjQ0MTIxNjU2Mjk4NDE5NTY4MTkiLCJleHAiOjE2NTY1MDYwODAsImp0aSI6InZRN0Uxa0xPTzVpQ3ZuR2JYTUdkZWciLCJpYXQiOjE2NTYzMjYwODEsIm5iZiI6MTY1NjMyNjAyMX0.CW3d41c7oGP23FU5DKGyiX553qLea09oYS4s-dISnse9iE-gGjZxUEqXlHSgfSERES9VeaaVwXEUqPOGKkHEEW0fQKcS82WTepiy1QHB0WeRzqKQQY9t38Rp-v_uMlpKLhnrfK_q_Q1A9ak5kDlpvidp2p5I84NmnisiQmGW7ep3xzs9V7axV9ump207ek5Bl1fs1kZ2gOUTHyWuQ0XoIDF6NHmUjtpA31jc5a13o-UIgX1Bd3ZNjmFiwm4EQ3xyZci72w0rTV7EyRa4KU7KyBjv-QJGv8T2Y4e2GnI-BiqWsaE1wtImhvXRRQ__MT_lRDph87-7zA4cTWEsZJRSXg", "idaasCode": null, "locked": false, "enabled": false, "sourceApplicationUuid": null, "authId": null, "unionId": null, "openId": null, "phoneRegion": null, "createTime": null, "uamParams": null } }
四、完善個人資訊
發送驗證碼
帳號補充帳號資訊時,如果需要補充手機號或者郵箱,則先驗證手機號和郵箱是否為目前使用者的,因此需要用到驗證碼校正。該介面用於發送手機號/郵箱驗證碼。
介面地址
Request URI:
POST/api/bff/v1.2/developer/ciam/complete/obtain_codeContent-Type: application/json請求參數
說明若開啟了簡訊/郵件防暴,圖形驗證碼則在發送驗證碼次數超過風控閾值時需要驗證圖形驗證碼。
{ "fId": "{{fId}}", "type":"EMAIL", "email":"te**@test.com", "phoneNumber":"1510000****", "phoneRegion":"", "userType":"", "captchaCode":"", "captchaText":"" }參數名
類型
必須
內容說明
fId
String
是
上一步流程的
FId。type
String
是
綁定的屬性類型。SMS代表手機號,EMAIL代表郵箱。
phoneNumber
String
否
手機號,當
Type傳 SMS時該值必傳。phoneRegion
String
否
手機號區號。
email
String
否
郵箱,當
Type傳 EMAIL時該值必傳。language
String
否
發送驗證碼的語言類型,預設取慣用語言。
engineCode
String
否
發送驗證碼的網關編碼,預設取首選服務商的首選網關。
userType
String
否
自訂使用者類型,預設為普通使用者。
captchaCode
String
否
圖形驗證碼的唯一標識,通過擷取圖形驗證介面返回。
captchaText
String
否
圖形驗證碼,根據介面中驗證碼圖片顯示的數字進行填寫。
返回參數
{ "success": true, "code": "Operation.Success", "message": "Operation.Success", "requestId": "1654591001075$3b675da5-5564-8ac5-f5cb-278f22c2908a", "data": { "fId": "20220607163529468654192924672_X_BDE" } }參數名
類型
樣本
描述
fId
String
流程ID,下一個流程傳回來。
補充帳號屬性
在使用者進行認證操作時,若開啟賬戶屬性必填的配置,認證完成後將會返回
FlowType=NEED_COMPLETE_ACCOUNT_ATTR,同時包含以下內容時,需要執行補充賬戶資訊的流程:{ "success": true, "code": "Operation.Success", "message": "Operation.Success", "requestId": "1673335017357$4eec4dea-e833-365b-9076-4744fa49ae84", "data": { "fId": "202301101516523678255186083334144_X_BCDEF", "flowType": "NEED_COMPLETE_ACCOUNT_ATTR", "additional": { "accountAttrs": [ "username", "email", "password" ], "baseAttrs": [ { "fieldName": "姓名", "dataDictionaryFieldType": "TEXT", "dataDictionaryType": "USER_BASE", "dictionaryValueUuid": "xxxxxxx", "selectFieldOptions": [], "fieldValue": "fullName", "uuid": "46b13e088966a93daa01d42ccacc0e88zk8mIRyXO0J", "customAttributes": [] } ] } } }該介面用於補充帳號的屬性(手機號、郵箱、使用者名稱、密碼等)和使用者的基本屬性(頭像、暱稱、姓名、性別、生日等)。
說明該介面在部分情境下可能也會返回待補充的使用者的擴充屬性,前端需要做好適配。
介面地址
Request URI:
POST/api/bff/v1.2/developer/ciam/complete/account_attrContent-Type: application/json請求參數
{ "fId": "xxxxxx", "email": "te**@test.com", "emailCode": "000000", "phoneNumber": "1510000****", "phoneRegion": "86", "smsCode": "000000", "username": "test" }參數名
類型
必須
內容說明
fId
String
是
上一步流程的
FId。username
String
否
使用者名稱,該值是否必填,取決於當登入或者註冊介面返回 flowType=NEED_COMPLETE_ACCOUNT_ATTR 時,介面返回資料中的
data.additional.accountAttrs裡是否包含Username屬性。password
String
否
密碼,該值是否必填,取決於當登入或者註冊介面返回 flowType=NEED_COMPLETE_ACCOUNT_ATTR 時,介面返回資料中的
Data.additional.accountAttrs裡是否包含Password屬性。email
String
否
郵箱,該值是否必填,取決於當登入或者註冊介面返回 FlowType=NEED_COMPLETE_ACCOUNT_ATTR 時,介面返回資料中的
Data.additional.accountAttrs裡是否包含Email屬性。phoneNumber
String
否
手機號,該值是否必填,取決於當登入或者註冊介面返回 FlowType=NEED_COMPLETE_ACCOUNT_ATTR 時,介面返回資料中的
Data.additional.accountAttrs裡是否包含PhoneNumber屬性。phoneRegion
String
否
手機號區號,該值是否必填,取決於當登入或者註冊介面返回 FlowType=NEED_COMPLETE_ACCOUNT_ATTR 時,介面返回資料中的
Data.additional.accountAttrs裡是否包含PhoneNumber屬性。smsCode
String
否
手機驗證碼,當待補充的屬性中存在手機號時,該值必填。
emailCode
String
否
郵箱驗證碼,當待補充的屬性中存在郵箱時,該值必填。
displayName
String
否
顯示名稱,該值是否必填,取決於當登入或者註冊介面返回 FlowType=NEED_COMPLETE_ACCOUNT_ATTR 時,介面返回資料中的
Data.additional.baseAttrs裡是否包含DisplayName屬性。enDisplayName
String
否
英文顯示名稱,該值是否必填,取決於當登入或者註冊介面返回 FlowType=NEED_COMPLETE_ACCOUNT_ATTR 時,介面返回資料中的
Data.additional.baseAttrs裡是否包含EnDisplayName屬性。fullName
String
否
名稱全稱,該值是否必填,取決於當登入或者註冊介面返回 FlowType=NEED_COMPLETE_ACCOUNT_ATTR 時,介面返回資料中的
Data.additional.baseAttrs裡是否包含FullName屬性。gender
String
否
性別,該值是否必填,取決於當登入或者註冊介面返回 FlowType=NEED_COMPLETE_ACCOUNT_ATTR 時,介面返回資料中的
Data.additional.baseAttrs裡是否包含Gender屬性。birthday
String
否
生日,該值是否必填,取決於當登入或者註冊介面返回 FlowType=NEED_COMPLETE_ACCOUNT_ATTR 時,介面返回資料中的
Data.additional.baseAttrs裡是否包含Birthday屬性。country
String
否
國家,該值是否必填,取決於當登入或者註冊介面返回 FlowType=NEED_COMPLETE_ACCOUNT_ATTR 時,介面返回資料中的
Data.additional.baseAttrs裡是否包含Country屬性。region
String
否
地區,該值是否必填,取決於當登入或者註冊介面返回 FlowType=NEED_COMPLETE_ACCOUNT_ATTR 時,介面返回資料中的
Data.additional.baseAttrs裡是否包含Region屬性。province
String
否
省份,該值是否必填,取決於當登入或者註冊介面返回 FlowType=NEED_COMPLETE_ACCOUNT_ATTR 時,介面返回資料中的
Data.additional.baseAttrs裡是否包含Province屬性。city
String
否
城市,該值是否必填,取決於當登入或者註冊介面返回 FlowType=NEED_COMPLETE_ACCOUNT_ATTR 時,介面返回資料中的
Data.additional.baseAttrs裡是否包含City屬性。street
String
否
街道,該值是否必填,取決於當登入或者註冊介面返回 FlowType=NEED_COMPLETE_ACCOUNT_ATTR 時,介面返回資料中的
Data.additional.baseAttrs裡是否包含Street屬性。address
String
否
詳細地址,該值是否必填,取決於當登入或者註冊介面返回 FlowType=NEED_COMPLETE_ACCOUNT_ATTR 時,介面返回資料中的
Data.additional.baseAttrs裡是否包含Address屬性。description
String
否
個人描述,該值是否必填,取決於當登入或者註冊介面返回 FlowType=NEED_COMPLETE_ACCOUNT_ATTR 時,介面返回資料中的
Data.additional.baseAttrs裡是否包含Description屬性。avatarUuid
String
否
帳戶圖片,該值是否必填,取決於當登入或者註冊介面返回 FlowType=NEED_COMPLETE_ACCOUNT_ATTR 時,介面返回資料中的
Data.additional.baseAttrs裡是否包含AvatarUuid屬性。返回參數
{ "success": true, "code": "Operation.Success", "message": "Operation.Success", "requestId": "1671451557868$5296056b-782c-38e6-aaf4-e2a9580055a9", "data": { "userId": null, "uuid": "9c9f2eb104b1dd8ffc21a8c53cf168fc6LJFouMQJNH", "access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6ImUyZTE0MTNmNGRiMzgwOTA4YjRlZDNlYjZmOGJmMDhhMURvZjZDblc0V0QifQ.eyJjaXBoZXJUZXh0IjoiVkh3YXpxZTdVb1owNEs5TTlnN2pqLzUvTEhSc2ZyOG1wVHU0TWdUckYwTGJLZ0ZLaHl0ckRsTktUa2FYUzMxRU1kRE1GWE1iWlZLYXd2SzM2OWk1SGZzZk1rSjcyRHFnbCtUMHZTVzFKRHB3Z1ozS3IyQU01T21FQmx5MDJlNzJ4dmRHalNET1BtNlhZeEtqWGFrelhzR2wwVVRtWEdxNm9mK2FLUzJJNllWOG9rZkRlQlIzb2JTbSt2Y0c3TTRPTm9KTDR6cG11ajZXNENwQTNkeTJQRHBOV0dkRktOeks1cmF2eERJcmJTZUtnMmp4bmFGN2R6SXlBS2xzcnc2eGJzODJuNU5INk5uSnZPZ2NHVW5LRlBqOG4xZHhVTHlLOHlIUk4rRUtMeWJIczcxbmVIeFFzM2pNbi9UaERzdDBuSStmVTI4LzFhMVV6RGd4MXRLUDBkbmNwS3owSGVwbWV5WnF1ZGppWXlZbjN1eVBibWg2SVBuNG1FWGdVbzNQeGp5dDNXRTlkQS9HSmJqR2t2N1NKRzJ4TlRlZnk0ejNhRXZ2UHNmemJpbm5kaG9jVFRrb2ZnbVdyLyt4Ky8yQWx3NFZMZHV5enZHR01jcUpLK3ZNNFE9PSIsImRhdGFDaXBoZXJBbGciOiJERUZBVUxUIiwidGVuYW50S2V5VXVpZCI6IjdhYjQyN2UxMzQ0ZGRlMDFjOWY5NzQ3Mjc2MDM4NGFicGZ0S01hbkZFRkgifQ.5T7iDRsl8FXZN1A-tFPepPS_huDSw8CRHuaCefBSyLs", "token_type": "bearer", "refresh_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6ImUyZTE0MTNmNGRiMzgwOTA4YjRlZDNlYjZmOGJmMDhhMURvZjZDblc0V0QifQ.eyJjaXBoZXJUZXh0IjoiVkh3YXpxZTdVb1owNEs5TTlnN2pqLzUvTEhSc2ZyOG1wVHU0TWdUckYwTGJLZ0ZLaHl0ckRsTktUa2FYUzMxRU1kRE1GWE1iWlZLYXd2SzM2OWk1SGZzZk1rSjcyRHFnbCtUMHZTVzFKRHB3Z1ozS3IyQU01T21FQmx5MDJlNzJ4dmRHalNET1BtNlhZeEtqWGFrelhzR2wwVVRtWEdxNm9mK2FLUzJJNllWcUNrRUtQbHpoOEw1ajVqRHJzM0VKRWNSd3ZxNGpGU0QvSjJ6VTc4VGlvTkFsb1VseVpYZ0dMMGV0V0pzT2ZuU2RyZCsrSjNLYTU3Mi8rbDdEd3VPeDF4V09VT2xpVDB5QnhseU5peVI4ZW5BaVhlMUxtSkxxWnlPSVNJdDlZU3VFdk9oTlBXbXkwalRMNVpSZGkxZWtQaXpERVhxTDdTQnc2UkgxVHViTjRkVUlLN0w3TFBXc3FITnVuSm9YcjNQTmJVcXh4M09OV1I0K0dMWFl0dmRSWDV4UjBnYzllZnk5ZkZpZk9oeFdYWWs5cTREdmw5cnR5dTdqc25iUit4czZYWjhoYms2VWp2MEo2YVFLdmE3dWpGMlBlc3oyRVo3V3NnUVVZVmY5SDY2ZGhnUTJGTnhYd3JBVlJnMnRvSzNjM1VWOUJ4RkNub0NFbytEWkxWN1giLCJkYXRhQ2lwaGVyQWxnIjoiREVGQVVMVCIsInRlbmFudEtleVV1aWQiOiI3YWI0MjdlMTM0NGRkZTAxYzlmOTc0NzI3NjAzODRhYnBmdEtNYW5GRUZIIn0.ZfQ4O1u1lHDIynAg63FpUfBS6BJslza6S33NvzdqMxs", "expires_in": 719999, "scope": "USER_API,openid,profile", "id_token": "eyJhbGciOiJSUzI1NiJ9.eyJpc3MiOiJodHRwOi8vbG9jYWxob3N0OjgwODEiLCJzdWIiOiI5YzlmMmViMTA0YjFkZDhmZmMyMWE4YzUzY2YxNjhmYzZMSkZvdU1RSk5IIiwiYXVkIjoiZTJlMTQxM2Y0ZGIzODA5MDhiNGVkM2ViNmY4YmYwOGExRG9mNkNuVzRXRCIsImV4cCI6MTY3MjE3MTU2OCwiaWF0IjoxNjcxNDUxNTY5LCJqdGkiOiJrQ050MEpmbkVJZWZWbUdla0Z3QkpBIiwibmJmIjoxNjcxNDUxNTA5LCJ1c2VybmFtZSI6ImQxMjM0NTYiLCJleHRlcm5hbElkIjpudWxsLCJuaWNrbmFtZSI6IlIyMDIyMTEyODE2MTQxMDE2MjE5MDA1OTUiLCJwcmVmZXJyZWRfdXNlcm5hbWUiOiJSMjAyMjExMjgxNjE0MTAxNjIxOTAwNTk1In0.NXAqFDXtnqIYc08LzEmvCLkuRtiG9UIYpT-v3gka4eHUmWdxb0sAg3WuOWP_VXqWb2EkzFN1Jeo4x--WywBnpkwJ8OXR6GTnLu9eaxxktM7zrrQ-brriCeTm8Oi8UZrRm3ronY_7VvTXgKVNY1hiqbQyQGDp6zo5QdiBRbSyqXvHXkIrz2-R8716TxeGSmPV2PQMGjaFFNCQWgXXDOEX_8TK6TOtRy-nYIe39NeYGWT6X5-IrslsKKTKW3yjc6227EHQtCZjIxK51Ys7hQh-ahoQUbyPFJUQeFbbkRiXokOBIloWfoWWBCsXTfILWJm3wrq9lHyvlavUT64291k8RA" } }補充擴充屬性
在使用者進行認證操作時,若開啟賬戶擴充必填的配置,認證完成後將會返回
FlowType=NEED_COMPLETE_EXTENSION_ATTR,同時包含以下內容時,需要執行補充賬戶資訊的流程:{ "success": true, "code": "Operation.Success", "message": "Operation.Success", "requestId": "1672307673561$a48a5b6a-baa8-dd7f-a805-d070a5f856b1", "data": { "fId": "202212291754332256045602524457984_X_BCDF", "flowType": "NEED_COMPLETE_EXTENSION_ATTR", "additional": { "dataDictionaries": [ { "needRelation": false, "fieldName": "性別", "dataDictionaryFieldType": "SELECT", "dataDictionaryType": "UD_ACCOUNT", "enterpriseUuid": "2bcdef58e8ae5cf6f5b18343bc1fbebc2f64xbYa0yx", "needShow": true, "fieldValue": "sex", "uuid": "cc4d7cbfda2ebc0437921ab3fe900f7fylI7pPzLC9C", "enabled": true, "required": false, "readonly": false, "unique": false, "dictionaryValueUuid": "0646c123295b07b93570b43c2e0b057ebEIKJZzEvWG", "selectFieldOptions": [ { "optionLabel": "男", "optionValue": "男", "optionId": "2fe9693edc921a4ae0bdd2e7653aafd4GW1e6uZFSgS", "uuid": "077d6c18b9168aad2451ad063f5e4588O3zhBpn50y3" }, { "optionLabel": "女", "optionValue": "女", "optionId": "a547a2535e1aae7d2631e9e613e6824fmP9dg8SNfkr", "uuid": "52f2a4b11b168696a64ee144f7b2729akjuANhofvcG" } ], "modifiable": true, "needSensitive": false, "customAttributes": [] } ] }, "userList": null } }該介面用於補充帳號的擴充屬性。
說明該介面在部分情境下可能也會返回待補充的使用者的帳號屬性,前端需要做好適配,帳號屬性的內容參考2.4.4補充帳號屬性。
介面地址
Request URI:
POST/api/bff/v1.2/developer/ciam/complete/extension_attrContent-Type: application/json請求參數
{ "fId":"xxxxxxxxx", "dataDictionaryValues": [ { "uuid": "0646c123295b07b93570b43c2e0b057ebEIKJZzEvWG", "dictionaryUuid": "cc4d7cbfda2ebc0437921ab3fe900f7fylI7pPzLC9C", "dictionaryValue": "男" }, { "uuid": "880490b6d30c8c0f2612d3df8b2aae0bSUfpHl5rVsq", "dictionaryUuid": "0fe64d5bf628a7*******3573de77f238x5hv7TROSWB", "dictionaryValue": "擴充屬性的值" } ] }參數名
類型
必須
內容說明
fId
String
是
流程ID,上個流程產生的。
dataDictionaryValues
Array
是
擴充屬性的值,數群組類型。
uuid
String
否
擴充屬性值的Uuid,當登入或者註冊介面返回 FlowType=NEED_COMPLETE_EXTENSION_ATTR時,該值對應登入註冊介面返回資料中的
Data.additional.dataDictionaries[0].dictionaryValueUuid。dictionaryUuid
String
是
擴充屬性的Uuid,當登入或者註冊介面返回 FlowType=NEED_COMPLETE_EXTENSION_ATTR 時,該值對應登入註冊介面返回資料中的
Data.additional.dataDictionaries[0].Uuid。dictionaryValue
String
是
擴充屬性的值,由使用者輸入。
返回參數
{ "success": true, "code": "Operation.Success", "message": "Operation.Success", "requestId": "1671451557868$5296056b-782c-38e6-aaf4-e2a9580055a9", "data": { "userId": null, "uuid": "9c9f2eb104b1dd8ffc21a8c53cf168fc6LJFouMQJNH", "access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6ImUyZTE0MTNmNGRiMzgwOTA4YjRlZDNlYjZmOGJmMDhhMURvZjZDblc0V0QifQ.eyJjaXBoZXJUZXh0IjoiVkh3YXpxZTdVb1owNEs5TTlnN2pqLzUvTEhSc2ZyOG1wVHU0TWdUckYwTGJLZ0ZLaHl0ckRsTktUa2FYUzMxRU1kRE1GWE1iWlZLYXd2SzM2OWk1SGZzZk1rSjcyRHFnbCtUMHZTVzFKRHB3Z1ozS3IyQU01T21FQmx5MDJlNzJ4dmRHalNET1BtNlhZeEtqWGFrelhzR2wwVVRtWEdxNm9mK2FLUzJJNllWOG9rZkRlQlIzb2JTbSt2Y0c3TTRPTm9KTDR6cG11ajZXNENwQTNkeTJQRHBOV0dkRktOeks1cmF2eERJcmJTZUtnMmp4bmFGN2R6SXlBS2xzcnc2eGJzODJuNU5INk5uSnZPZ2NHVW5LRlBqOG4xZHhVTHlLOHlIUk4rRUtMeWJIczcxbmVIeFFzM2pNbi9UaERzdDBuSStmVTI4LzFhMVV6RGd4MXRLUDBkbmNwS3owSGVwbWV5WnF1ZGppWXlZbjN1eVBibWg2SVBuNG1FWGdVbzNQeGp5dDNXRTlkQS9HSmJqR2t2N1NKRzJ4TlRlZnk0ejNhRXZ2UHNmemJpbm5kaG9jVFRrb2ZnbVdyLyt4Ky8yQWx3NFZMZHV5enZHR01jcUpLK3ZNNFE9PSIsImRhdGFDaXBoZXJBbGciOiJERUZBVUxUIiwidGVuYW50S2V5VXVpZCI6IjdhYjQyN2UxMzQ0ZGRlMDFjOWY5NzQ3Mjc2MDM4NGFicGZ0S01hbkZFRkgifQ.5T7iDRsl8FXZN1A-tFPepPS_huDSw8CRHuaCefBSyLs", "token_type": "bearer", "refresh_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6ImUyZTE0MTNmNGRiMzgwOTA4YjRlZDNlYjZmOGJmMDhhMURvZjZDblc0V0QifQ.eyJjaXBoZXJUZXh0IjoiVkh3YXpxZTdVb1owNEs5TTlnN2pqLzUvTEhSc2ZyOG1wVHU0TWdUckYwTGJLZ0ZLaHl0ckRsTktUa2FYUzMxRU1kRE1GWE1iWlZLYXd2SzM2OWk1SGZzZk1rSjcyRHFnbCtUMHZTVzFKRHB3Z1ozS3IyQU01T21FQmx5MDJlNzJ4dmRHalNET1BtNlhZeEtqWGFrelhzR2wwVVRtWEdxNm9mK2FLUzJJNllWcUNrRUtQbHpoOEw1ajVqRHJzM0VKRWNSd3ZxNGpGU0QvSjJ6VTc4VGlvTkFsb1VseVpYZ0dMMGV0V0pzT2ZuU2RyZCsrSjNLYTU3Mi8rbDdEd3VPeDF4V09VT2xpVDB5QnhseU5peVI4ZW5BaVhlMUxtSkxxWnlPSVNJdDlZU3VFdk9oTlBXbXkwalRMNVpSZGkxZWtQaXpERVhxTDdTQnc2UkgxVHViTjRkVUlLN0w3TFBXc3FITnVuSm9YcjNQTmJVcXh4M09OV1I0K0dMWFl0dmRSWDV4UjBnYzllZnk5ZkZpZk9oeFdYWWs5cTREdmw5cnR5dTdqc25iUit4czZYWjhoYms2VWp2MEo2YVFLdmE3dWpGMlBlc3oyRVo3V3NnUVVZVmY5SDY2ZGhnUTJGTnhYd3JBVlJnMnRvSzNjM1VWOUJ4RkNub0NFbytEWkxWN1giLCJkYXRhQ2lwaGVyQWxnIjoiREVGQVVMVCIsInRlbmFudEtleVV1aWQiOiI3YWI0MjdlMTM0NGRkZTAxYzlmOTc0NzI3NjAzODRhYnBmdEtNYW5GRUZIIn0.ZfQ4O1u1lHDIynAg63FpUfBS6BJslza6S33NvzdqMxs", "expires_in": 719999, "scope": "USER_API,openid,profile", "id_token": "eyJhbGciOiJSUzI1NiJ9.eyJpc3MiOiJodHRwOi8vbG9jYWxob3N0OjgwODEiLCJzdWIiOiI5YzlmMmViMTA0YjFkZDhmZmMyMWE4YzUzY2YxNjhmYzZMSkZvdU1RSk5IIiwiYXVkIjoiZTJlMTQxM2Y0ZGIzODA5MDhiNGVkM2ViNmY4YmYwOGExRG9mNkNuVzRXRCIsImV4cCI6MTY3MjE3MTU2OCwiaWF0IjoxNjcxNDUxNTY5LCJqdGkiOiJrQ050MEpmbkVJZWZWbUdla0Z3QkpBIiwibmJmIjoxNjcxNDUxNTA5LCJ1c2VybmFtZSI6ImQxMjM0NTYiLCJleHRlcm5hbElkIjpudWxsLCJuaWNrbmFtZSI6IlIyMDIyMTEyODE2MTQxMDE2MjE5MDA1OTUiLCJwcmVmZXJyZWRfdXNlcm5hbWUiOiJSMjAyMjExMjgxNjE0MTAxNjIxOTAwNTk1In0.NXAqFDXtnqIYc08LzEmvCLkuRtiG9UIYpT-v3gka4eHUmWdxb0sAg3WuOWP_VXqWb2EkzFN1Jeo4x--WywBnpkwJ8OXR6GTnLu9eaxxktM7zrrQ-brriCeTm8Oi8UZrRm3ronY_7VvTXgKVNY1hiqbQyQGDp6zo5QdiBRbSyqXvHXkIrz2-R8716TxeGSmPV2PQMGjaFFNCQWgXXDOEX_8TK6TOtRy-nYIe39NeYGWT6X5-IrslsKKTKW3yjc6227EHQtCZjIxK51Ys7hQh-ahoQUbyPFJUQeFbbkRiXokOBIloWfoWWBCsXTfILWJm3wrq9lHyvlavUT64291k8RA", "uamParams": null } }跳過補充帳號資訊
在使用者進行認證操作時,若開啟賬戶擴充必填的配置,認證完成後將會返回
FlowType=NEED_COMPLETE_ACCOUNT_ATTR或者FlowType=NEED_COMPLETE_EXTENSION_ATTR,使用者可以在註冊環節選擇是否跳過補充資訊。該介面主要用於使用者在註冊環節跳過補充資訊(包括補充帳號資訊和補充擴充資訊,都調用該介面進行跳過)時使用。介面地址
Request URI:
POST/api/bff/v1.2/developer/ciam/complete/ignoreContent-Type: application/json
請求參數
{ "fId": "xxxxx" }參數名
類型
必須
內容說明
fId
String
是
流程ID,上個流程產生的。
返回參數
{ "success": true, "code": "Operation.Success", "message": "Operation.Success", "requestId": "1671451557868$5296056b-782c-38e6-aaf4-e2a9580055a9", "data": { "userId": null, "uuid": "9c9f2eb104b1dd8ffc21a8c53cf168fc6LJFouMQJNH", "access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6ImUyZTE0MTNmNGRiMzgwOTA4YjRlZDNlYjZmOGJmMDhhMURvZjZDblc0V0QifQ.eyJjaXBoZXJUZXh0IjoiVkh3YXpxZTdVb1owNEs5TTlnN2pqLzUvTEhSc2ZyOG1wVHU0TWdUckYwTGJLZ0ZLaHl0ckRsTktUa2FYUzMxRU1kRE1GWE1iWlZLYXd2SzM2OWk1SGZzZk1rSjcyRHFnbCtUMHZTVzFKRHB3Z1ozS3IyQU01T21FQmx5MDJlNzJ4dmRHalNET1BtNlhZeEtqWGFrelhzR2wwVVRtWEdxNm9mK2FLUzJJNllWOG9rZkRlQlIzb2JTbSt2Y0c3TTRPTm9KTDR6cG11ajZXNENwQTNkeTJQRHBOV0dkRktOeks1cmF2eERJcmJTZUtnMmp4bmFGN2R6SXlBS2xzcnc2eGJzODJuNU5INk5uSnZPZ2NHVW5LRlBqOG4xZHhVTHlLOHlIUk4rRUtMeWJIczcxbmVIeFFzM2pNbi9UaERzdDBuSStmVTI4LzFhMVV6RGd4MXRLUDBkbmNwS3owSGVwbWV5WnF1ZGppWXlZbjN1eVBibWg2SVBuNG1FWGdVbzNQeGp5dDNXRTlkQS9HSmJqR2t2N1NKRzJ4TlRlZnk0ejNhRXZ2UHNmemJpbm5kaG9jVFRrb2ZnbVdyLyt4Ky8yQWx3NFZMZHV5enZHR01jcUpLK3ZNNFE9PSIsImRhdGFDaXBoZXJBbGciOiJERUZBVUxUIiwidGVuYW50S2V5VXVpZCI6IjdhYjQyN2UxMzQ0ZGRlMDFjOWY5NzQ3Mjc2MDM4NGFicGZ0S01hbkZFRkgifQ.5T7iDRsl8FXZN1A-tFPepPS_huDSw8CRHuaCefBSyLs", "token_type": "bearer", "refresh_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6ImUyZTE0MTNmNGRiMzgwOTA4YjRlZDNlYjZmOGJmMDhhMURvZjZDblc0V0QifQ.eyJjaXBoZXJUZXh0IjoiVkh3YXpxZTdVb1owNEs5TTlnN2pqLzUvTEhSc2ZyOG1wVHU0TWdUckYwTGJLZ0ZLaHl0ckRsTktUa2FYUzMxRU1kRE1GWE1iWlZLYXd2SzM2OWk1SGZzZk1rSjcyRHFnbCtUMHZTVzFKRHB3Z1ozS3IyQU01T21FQmx5MDJlNzJ4dmRHalNET1BtNlhZeEtqWGFrelhzR2wwVVRtWEdxNm9mK2FLUzJJNllWcUNrRUtQbHpoOEw1ajVqRHJzM0VKRWNSd3ZxNGpGU0QvSjJ6VTc4VGlvTkFsb1VseVpYZ0dMMGV0V0pzT2ZuU2RyZCsrSjNLYTU3Mi8rbDdEd3VPeDF4V09VT2xpVDB5QnhseU5peVI4ZW5BaVhlMUxtSkxxWnlPSVNJdDlZU3VFdk9oTlBXbXkwalRMNVpSZGkxZWtQaXpERVhxTDdTQnc2UkgxVHViTjRkVUlLN0w3TFBXc3FITnVuSm9YcjNQTmJVcXh4M09OV1I0K0dMWFl0dmRSWDV4UjBnYzllZnk5ZkZpZk9oeFdYWWs5cTREdmw5cnR5dTdqc25iUit4czZYWjhoYms2VWp2MEo2YVFLdmE3dWpGMlBlc3oyRVo3V3NnUVVZVmY5SDY2ZGhnUTJGTnhYd3JBVlJnMnRvSzNjM1VWOUJ4RkNub0NFbytEWkxWN1giLCJkYXRhQ2lwaGVyQWxnIjoiREVGQVVMVCIsInRlbmFudEtleVV1aWQiOiI3YWI0MjdlMTM0NGRkZTAxYzlmOTc0NzI3NjAzODRhYnBmdEtNYW5GRUZIIn0.ZfQ4O1u1lHDIynAg63FpUfBS6BJslza6S33NvzdqMxs", "expires_in": 719999, "scope": "USER_API,openid,profile", "id_token": "eyJhbGciOiJSUzI1NiJ9.eyJpc3MiOiJodHRwOi8vbG9jYWxob3N0OjgwODEiLCJzdWIiOiI5YzlmMmViMTA0YjFkZDhmZmMyMWE4YzUzY2YxNjhmYzZMSkZvdU1RSk5IIiwiYXVkIjoiZTJlMTQxM2Y0ZGIzODA5MDhiNGVkM2ViNmY4YmYwOGExRG9mNkNuVzRXRCIsImV4cCI6MTY3MjE3MTU2OCwiaWF0IjoxNjcxNDUxNTY5LCJqdGkiOiJrQ050MEpmbkVJZWZWbUdla0Z3QkpBIiwibmJmIjoxNjcxNDUxNTA5LCJ1c2VybmFtZSI6ImQxMjM0NTYiLCJleHRlcm5hbElkIjpudWxsLCJuaWNrbmFtZSI6IlIyMDIyMTEyODE2MTQxMDE2MjE5MDA1OTUiLCJwcmVmZXJyZWRfdXNlcm5hbWUiOiJSMjAyMjExMjgxNjE0MTAxNjIxOTAwNTk1In0.NXAqFDXtnqIYc08LzEmvCLkuRtiG9UIYpT-v3gka4eHUmWdxb0sAg3WuOWP_VXqWb2EkzFN1Jeo4x--WywBnpkwJ8OXR6GTnLu9eaxxktM7zrrQ-brriCeTm8Oi8UZrRm3ronY_7VvTXgKVNY1hiqbQyQGDp6zo5QdiBRbSyqXvHXkIrz2-R8716TxeGSmPV2PQMGjaFFNCQWgXXDOEX_8TK6TOtRy-nYIe39NeYGWT6X5-IrslsKKTKW3yjc6227EHQtCZjIxK51Ys7hQh-ahoQUbyPFJUQeFbbkRiXokOBIloWfoWWBCsXTfILWJm3wrq9lHyvlavUT64291k8RA" } }
五、其他介面
忘記密碼
使用者輸入手機號或郵箱來發起忘記密碼流程。如果輸入的唯一標識有效,那麼IDaaS會發送一個15分鐘有效OTP驗證碼至該手機。
發送驗證碼
介面地址
Request URI:
POST/api/bff/v1.2/developer/ciam/forgot_password/sendContent-Type: application/json請求參數
參數名
類型
必填
內容說明
fId
String
否
上一步流程的
FId,比如切換使用者類型。phoneNumber
String
是
手機號,當 Type=SMS時必填。
phoneRegion
String
否
手機區號,預設86。
type
String
是
找回密碼的類型。SMS代表手機號,EMAIL代表郵箱。
email
String
是
郵箱,當 Type=EMAIL時必填。
language
String
否
發送驗證碼的語言類型,預設取慣用語言。
engineCode
String
否
發送驗證碼的網關編碼,預設取首選服務商的首選網關。
userType
String
否
自訂使用者類型,預設為Default。
返回參數
參數名
類型
內容說明
fId
String
流程ID,下個流程請求介面時需要傳遞。
{ "success": true, "code": "Operation.Success", "message": "Operation.Success", "requestId": "1672232351358$83cbe428-a81c-039e-3d14-04614f31b52c", "data": { "fId": "d587561e6b8dad2ab2b90715d5f74372ysYHVUMy2AR" } }校正簡訊驗證碼
調用當前介面來驗證OTP驗證碼是否通過。當驗證通過後,即可設定一個新密碼。
介面地址
Request URI:
POST/api/bff/v1.2/developer/ciam/forgot_password/verifyContent-Type: application/json請求參數
說明若開啟了簡訊/郵件防暴,圖形驗證碼則在發送驗證碼次數超過風控閾值時需要驗證圖形驗證碼。
參數名
類型
必須
內容說明
fId
String
是
上一步流程的
FId。type
String
是
綁定的屬性類型。SMS代表手機號,EMAIL代表郵箱。
code
String
是
使用者輸入的邀請碼。
phoneNumber
String
否
手機號,當Type傳 SMS時該值必傳。
phoneRegion
String
否
手機號區號。
email
String
否
郵箱,當Type傳 EMAIL時該值必傳。
captchaCode
String
否
圖形驗證碼的唯一標識,通過擷取圖形驗證介面返回。
captchaText
String
否
圖形驗證碼,根據介面中驗證碼圖片顯示的數字進行填寫。
返回參數
參數名
類型
內容說明
fId
String
流程ID,下一步流程需要原樣傳回。
{ "success": true, "code": "Operation.Success", "message": "Operation.Success", "requestId": "1662014149034$463a0625-928e-3951-d004-2bd553d9da51", "data": { "fId": "64075566080ea2757ada330861adc94a7HjhIK08J25" } }提交新密碼
當使用者驗證通過,並拿到
ForgotPasswordId後,調用本介面來設定一個新密碼。介面地址
Request URI:
POST/api/bff/v1.2/developer/ciam/forgot_password/update_pwdContent-Type: application/json請求參數
參數名
類型
必填
內容說明
newPassword
String
是
使用者輸入的新密碼。
fId
String
是
流程ID,由上一步介面返回。
返回參數
{ "success": true, "code": "Operation.Success", "message": "Operation.Success", "requestId": "1662014236325$ffee369b-f927-abdf-0585-48c2a5c69506", "data": null }