全部產品
Search
文件中心

Identity as a Service:認證介面

更新時間:Oct 29, 2025

本篇文檔將為您介紹介面認證的完整操作,以方便您理解。

完整的認證會經歷4個步驟:

  1. 先做初始化查詢動作,如查詢使用者必填項資訊,支援的二次認證方式等。

  2. 登入或者註冊,成功返回Token則標識成功,如果有FlowType則進入後續子流程(如果開啟了二次認證則會進入下圖第三步流程,否則進入下圖第四步流程)。

  3. 使用者在端上可以選擇二次認證方式進行認證,認證通過如果返回Token則標識登入成功,如果有FlowType則進入到補充使用者的資訊環節,不同的FlowType進行不同的業務。

  4. 當所有的完善資訊環節走完,則要麼登入成功,要麼登入失敗,有對應錯誤碼進行提示。

一、 前期準備

在CIAM後台建立應用,賦權用於認證介面許可權,並擷取到Client_IDClient_Secret資訊。

當使用CIAM服務端對接時:鑒權方式使用BearerToken

  1. 令牌有效性檢驗

    介面說明:

    調用上述檢測介面時,請務必攜帶對應類型的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
    }
  2. 擷取登入配置資訊

    當開發人員需要自訂開發登入註冊表單時,可以通過該介面擷取登入註冊組件以及登入註冊相關的一些配置項。

    介面地址

    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

    使用者名稱策略。

  3. 擷取應用發行的條款

    說明

    業務系統自己實現登入頁面又需要使用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。

  4. 查看條款詳情

    說明

    該介面並不是返回一個完整的HTML頁面,而是返回條款的內容(base64編碼),業務方需要主動解碼後渲染。 建議:解碼後的條款內容顯示到一個新的HTML中,防止HTML樣式被汙染。

    介面地址

    Request URI: POST /api/bff/v1.2/developer/ciam/consent

    Content-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:已停用。

  5. 擷取應用支援的認證源

    說明

    當業務系統需要整合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

  6. 擷取社交認證源的資訊

    該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並附帶到第三方認證源的授權地址中。

  7. 擷取圖片驗證碼

    在傳送簡訊、登入之前,建議調用本介面擷取圖片驗證碼,並在登入時傳給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格式資料。

  8. 擷取系統支援的使用者類型列表

    登入註冊前允許切換使用者類型進行登入註冊,用該介面可以擷取到當前租戶下支援的所有使用者類型,調用方需要進行判斷,當有且僅有一條使用者類型時,不建議再彈出使用者類型選擇的視窗。

    介面地址

    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。

  9. 切換帳號類型

    登入註冊流程中,允許使用者切換當前登入的使用者類型,切換後會產生新的流程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 需要捨棄。

二、登入、註冊

  1. 賬密登入

    介面地址

    Request URI: POST /api/bff/v1.2/developer/ciam/login/pwd

    Content-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"
        }
    }
  2. 驗證碼登入

    1. 發送驗證碼

      該介面適用於使用者通過簡訊驗證碼登入時擷取驗證碼。CIAM首先會基於客戶的IP和手機號碼維度,校正簡訊發送頻率,如果超過系統風控策略配置的閾值,則會強制校正圖形驗證碼(此時必須傳遞CaptchaCode和CaptchaText參數,可以通過擷取圖形驗證碼介面獲得),如果未超過閾值,則不校正圖形驗證碼。為了防止簡訊轟炸,強烈建議配置系統風控策略。

      介面地址

      Request URI: POST/api/bff/v1.2/developer/ciam/login/obtain_code

      Content-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

      請求驗證碼時需要原樣傳回。

    2. 校正驗證碼

      重要

      服務端僅保留Fid30分鐘(預設),所以30分鐘內如果沒有進行校正,則驗證碼將會失效; 驗證碼校正成功後,將會立即失效,防止重放攻擊; 驗證碼連續校正失敗超過系統風控策略配置的閾值後,將會失效並鎖定該使用者,防止暴力破解驗證碼;

      介面地址

      Request URI: POST/api/bff/v1.2/developer/ciam/login/verify_code

      Content-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"
          }
      }
  3. 社交登入

    介面地址

    Request URI: POST /api/bff/v1.2/developer/ciam/login/social

    Content-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"
        }
    }
  4. 微信小程式登入

    1. 靜默登入

      靜默登入的原理是通過小程式的Wx.login擷取到臨時code後,直接去服務端查詢對應的OpenidUnionid,再去查詢是否有綁定關係,如果有則驗證使用者狀態後登入成功,否則登入失敗,靜默登入失敗無後續流程。只要沒有正常返回使用者Token都認為是靜默登入失敗,包括帳號異常、無綁定關係等。 注意:CIAM中小程式授權登入是基於Unionid關聯唯一微信使用者,因此在對接小程式登入時,務必保證小程式已經綁定到微信開放平台帳號下,否則無法正常使用CIAM的小程式登入。

      介面地址

      Request URI: POST /api/bff/v1.2/developer/ciam/login/miniprogram/silent

      Content-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

    2. 授權登入

      授權登入的原理是通過小程式的Wx.login擷取到臨時code後,再通過Wx.getUserProfile擷取到微信使用者的加密資訊,然後去服務端通過LoginCode查詢對應的openidunionidsession_key,最後再根據session_key解碼使用者的資訊,擷取到使用者資訊後判斷是否有綁定關係,如果有則登入成功,否則會進行下一步流程,比如登入註冊。

      介面地址

      Request URI: POST /api/bff/v1.2/developer/ciam/login/miniprogram/authorized

      Content-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,下一個流程傳回來。

    3. 手機號一鍵登入

      手機號一鍵登入的原理是通過小程式的wx.login擷取到臨時code後,再通過wx.getPhoneNumber擷取到微信使用者的手機號加密資訊或者手機號code,然後去服務端通過loginCode查詢對應的OpenidUnionidSession_key,最後再判斷是否傳遞PhoneNumberCode,如果傳了則根據該code去微信換取使用者的真實手機號,否則根據Session_key解碼使用者的手機號資訊,擷取到使用者資訊後判斷是否有綁定關係,如果有則登入成功,否則會進行下一步流程,比如登入註冊。

      介面地址

      Request URI: POST /api/bff/v1.2/developer/ciam/login/miniprogram/phone

      Content-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

      當前識別出的手機號,可能前端需要用於展示。

  5. APP端

    1. 擷取accessToken

      當手機端需要使用手機號碼認證,或者IFAA認證時,需要給手機端進行授權,手機端擷取此Token資訊可以與安全認證產品互動。

      介面地址

      Request URI: POST/api/bff/v1.2/developer/ciam/login/app/safeauth/fetch_accesstoken

      Content-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

      調用安全認證服務失敗。

    2. 擷取fId

      當點擊更多登入方式,需要先擷取一個FId

      介面地址

      Request URI: POST/api/bff/v1.2/developer/ciam/login/app/getFid

      Content-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

      成功。

    3. 號碼、人臉、指紋認證

      當手機端需要使用手機號碼認證,或者IFAA認證時,手機端與安全認證通過後會給使用者產生IDToken,此介面驗證完IDToken,IdaaS就會認為認證成功且簽發token資訊。

      介面地址

      Request URI: POST /api/bff/v1.2/developer/ciam/login/app/safeauth/login

      Content-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

      服務端內部錯誤。

    4. 手勢認證

      當手機端需要使用手勢認證時,在使用者中心配置手勢,即可使用手勢登入。

      介面地址

      Request URI: POST /api/bff/v1.2/developer/ciam/login/app/gesture/login

      Content-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

      服務端內部錯誤。

  6. 註冊

    1. 註冊-發送驗證碼

      介面地址

      Request URI: POST /api/bff/v1.2/developer/ciam/register/obtain_code

      Content-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"
          }
      }
    2. 註冊-驗證碼

      介面地址

      Request URI: POST /api/bff/v1.2/developer/ciam/register/submit

      Content-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
          }
      }

三、二次認證

  1. 驗證碼方式-發送驗證碼

    說明

    當FlowType=NEED_TWO_FACTOR,進入二次認證,僅用於手機號、郵箱驗證碼的二次認證。

    介面地址

    Request URI: POST /api/bff/v1.2/developer/ciam/prepare_second_factor

    Content-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"
        }
    }
  2. 驗證碼方式-驗證碼

    介面地址

    Request URI: POST /api/bff/v1.2/developer/ciam/verify_second_factor

    Content-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
        }
    }
  3. 密碼方式-驗證密碼

    介面地址

    Request URI: POST /api/bff/v1.2/developer/ciam/verify_second_factor

    Content-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
        }
    }

四、完善個人資訊

  1. 發送驗證碼

    帳號補充帳號資訊時,如果需要補充手機號或者郵箱,則先驗證手機號和郵箱是否為目前使用者的,因此需要用到驗證碼校正。該介面用於發送手機號/郵箱驗證碼。

    介面地址

    Request URI: POST /api/bff/v1.2/developer/ciam/complete/obtain_code

    Content-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,下一個流程傳回來。

  2. 補充帳號屬性

    在使用者進行認證操作時,若開啟賬戶屬性必填的配置,認證完成後將會返回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_attr

    Content-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"
        }
    }
  3. 補充擴充屬性

    在使用者進行認證操作時,若開啟賬戶擴充必填的配置,認證完成後將會返回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_attr

    Content-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
        }
    }
  4. 跳過補充帳號資訊

    在使用者進行認證操作時,若開啟賬戶擴充必填的配置,認證完成後將會返回FlowType=NEED_COMPLETE_ACCOUNT_ATTR或者FlowType=NEED_COMPLETE_EXTENSION_ATTR,使用者可以在註冊環節選擇是否跳過補充資訊。該介面主要用於使用者在註冊環節跳過補充資訊(包括補充帳號資訊和補充擴充資訊,都調用該介面進行跳過)時使用。

    介面地址

    Request URI: POST /api/bff/v1.2/developer/ciam/complete/ignore

    Content-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"
        }
    }

五、其他介面

  1. 忘記密碼

    使用者輸入手機號或郵箱來發起忘記密碼流程。如果輸入的唯一標識有效,那麼IDaaS會發送一個15分鐘有效OTP驗證碼至該手機。

  2. 發送驗證碼

    介面地址

    Request URI: POST /api/bff/v1.2/developer/ciam/forgot_password/send

    Content-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"
      }
    }
  3. 校正簡訊驗證碼

    調用當前介面來驗證OTP驗證碼是否通過。當驗證通過後,即可設定一個新密碼。

    介面地址

    Request URI: POST /api/bff/v1.2/developer/ciam/forgot_password/verify

    Content-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"
      }
    }
  4. 提交新密碼

    當使用者驗證通過,並拿到ForgotPasswordId後,調用本介面來設定一個新密碼。

    介面地址

    Request URI: POST /api/bff/v1.2/developer/ciam/forgot_password/update_pwd

    Content-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
    }