將您的應用程式加上品牌

使用 IBM Cloud® App ID,您可以使用自己的品牌畫面來自訂應用程式的整個註冊體驗。 您可以使用自己的 Widget 來取代所提供的登入 Widget、新增更多欄位、驗證密碼強度,以及根據封鎖清單來驗證電子郵件地址!

瞭解畫面重複使用

當您重複使用現有的使用者介面時,可以為您的應用程式建立統一的登入流程。 使用相同的影像、顏色和品牌行銷,您的使用者更能夠辨識您的品牌,即使沒有直接與您的應用程式互動。

想要使用英文以外的語言嗎? 您可以使用 語言管理 API 來選擇其他語言,以顯示您自己翻譯的內容。

在登入或註冊畫面中需要取得哪些資訊?

要求提交登錄表單時,該要求必須在要求內文中包含使用者名稱及密碼參數。 您的登入或註冊頁面必須向您的使用者詢問該資訊。

我可以使用一些自己的畫面和一些預設畫面嗎?

是的! 您可以建立混合流程,使用您的某些畫面和某些預設畫面。 不過,每個流程只能使用一個選項。 例如,您可以使用自己的登入畫面,也可以使用預設的註冊畫面。 但是,如果您選擇使用預設註冊畫面,則在整個註冊流程中都必須繼續使用預設畫面,包括註冊驗證。

這些流程在技術上有何不同?

該服務使用 OAuth 2.0 授權流程來對映授權處理程序。 當您設定 Facebook 等社交身分提供者時,會使用 授權授予流程來呼叫登入 Widget。 當您使用自己的畫面時,資源擁有者密碼憑證流程會用來提供存取和身分令牌,您可以使用這些令牌來呼叫您的畫面。

使用 Android SDK 將應用程式加上品牌

啟用「雲端目錄」之後,即可使用 Android SDK 來呼叫自訂的畫面。 您可以選擇您希望使用者可與之互動的畫面組合。

登入

  1. 在主控台中設定 Cloud Directory 設定

  2. 將下列程式碼新增至應用程式。 當使用者按一下您自訂畫面上的登入時,即會觸發登入流程。 您可透過提供使用者的使用者名稱和密碼,取得存取、身分和刷新的權限。

    AppID.getInstance().signinWithResourceOwnerPassword(getApplicationContext(), username, password, new TokenResponseListener() {
       @Override
       public void onAuthorizationFailure (AuthorizationException exception) {
             //Exception occurred
       }
    
       @Override
       public void onAuthorizationSuccess (AccessToken accessToken, IdentityToken identityToken, RefreshToken refreshToken) {
             //User authenticated
       }
    });
    

使用 iOS Swift SDK 將應用程式加上品牌

啟用 Cloud Directory 後,您可以使用 iOS Swift SDK 來呼叫自己的品牌螢幕。

登入

  1. 在主控台中設定 Cloud Directory 設定

  2. 將下列程式碼放在您的應用程式中。 當使用者嘗試登入時,即會呼叫您自訂的畫面,授權及鑑別處理程序就會從您自訂的登入頁面開始。

    class delegate : TokenResponseDelegate {
       public func onAuthorizationSuccess(accessToken: AccessToken?, identityToken: IdentityToken?, response:Response?) {
       //User authenticated
       }
    
       public func onAuthorizationFailure(error: AuthorizationError) {
       //Exception occurred
       }
    }
    
    AppID.sharedInstance.signinWithResourceOwnerPassword(username: username, password: password, delegate: delegate())
    

使用 Node.js SDK 將應用程式加上品牌

啟用「雲端目錄」之後,即可使用 Node.js SDK 來呼叫自訂的畫面。

登入

透過使用 WebAppStrategy,使用者可以使用他們的使用者名稱和密碼登入您的網頁應用程式。 當使用者成功登入您的應用程式後,他們的存取標記會持續存在於 HTTP 會話中,同時保持存活。 HTTP 階段作業關閉或過期之後,也會破壞存取記號。

  1. 在主控台中設定 Cloud Directory 設定

  2. 將下列程式碼放在您的應用程式中。 當使用者嘗試登入時,即會呼叫您自訂的畫面,授權及鑑別處理程序就會開始。

    app.post("/form/submit", bodyParser.urlencoded({extended: false}), passport.authenticate(WebAppStrategy.STRATEGY_NAME, {
    successRedirect: LANDING_PAGE_URL,
    failureRedirect: ROP_LOGIN_PAGE_URL,
    failureFlash : true // allow flash messages
    }));
    
    登入參數
    參數 說明
    successRedirect 成功鑑別之後,您要將使用者重新導向至其中的 URL。
    failureRedirect

    鑑別失敗時,您要將使用者重新導向至其中的 URL。 發生下列驗證失敗時,使用者會被重定向到指定的 URL :

    • 使用者輸入不正確的使用者名稱或密碼。
    • 已達到 App ID 實例的計劃限制。
    failureFlash 當設定為 true 時,會從 Cloud Directory 服務傳回錯誤訊息。 預設值為 false

    若要查看其運作,請查看 Web 應用程式範例

使用 API 將應用程式加上品牌

您可以顯示自己的自訂畫面,並充分運用 App ID 的鑑別及授權功能。 使用「雲端目錄」作為身分提供者,使用者就可以在您提供較少協助的情況下,與您的應用程式互動。 他們可以登入、註冊、重設其密碼及其他作業,而不需要要求協助。

為了讓這種體驗成為可能,App ID 開放了 REST API。 您可以使用 REST API 建立後端伺服器,為您的 Web 應用程式提供服務,或使用自訂螢幕與行動應用程式互動。

管理 API 是使用 IBM Cloud Identity and Access Management 產生的記號來保護,這表示帳戶擁有者可以指定其團隊中哪一個成員對每一個服務實例具有哪一種存取層次。 如需 IAM 與 App ID 如何合作的相關資訊,請參閱服務存取管理

在您配置設定之後,即可呼叫下列端點來顯示每個畫面。

註冊

您可以使用 /sign_up 端點,容許使用者自行註冊您的應用程式。 在要求內文中提供下列資料:

  • 您的承租戶 ID。
  • 具有下列必要屬性的 Cloud Directory 使用者資料。 如需詳細資訊,請參閱 SCIM Full User Representation
    • password 屬性。
    • emails 陣列,至少具有一個電子郵件位址及一個設為 trueprimary 屬性。

取決於您的電子郵件配置,使用者可能會收到一個驗證要求、一封在他們註冊您的應用程式時歡迎他們的電子郵件,或兩者。 當使用者註冊您的應用程式時,會觸發這兩種類型的電子郵件。 驗證電子郵件包含一個鏈結,使用者可以按一下此鏈結來確認其身分;這時會顯示一個畫面,感謝他們驗證或確認其驗證已完成。

若要呈現自己的後置驗證頁面,請執行下列動作:

  1. 導覽到 App ID 控制面板中的 Cloud Directory 身分提供商。
  2. 按一下電子郵件驗證標籤。
  3. 自訂驗證頁面 URL 中,輸入登陸頁面的 URL。

當提供此值時,App ID 會呼叫 URL 以及 context 查詢。 當您呼叫 /sign_up/confirmation_result 端點並傳遞收到的 context 參數時,結果會告知您的使用者是否已驗證其帳戶。 如果已驗證,則您可以顯示自訂頁面。

忘記密碼

您可以使用 /forgot_password 端點,容許使用者在忘記其密碼時可以進行回復。

在要求內文中提供下列資料:

  • 您的承租戶 ID。
  • 「雲端目錄」使用者的電子郵件。

呼叫端點時,會將重設密碼電子郵件傳送給使用者。 此電子郵件包含重設按鈕。 在他們按下按鈕之後,App ID 即會顯示一個畫面,容許他們重設其密碼。

您可以呈現自己的後置重設密碼頁面:

  1. 在主控台中設定 Cloud Directory 設定容許使用者從您的應用程式管理其帳戶必須設為開啟
  2. 在服務儀表板的重設密碼標籤中,請確定忘記密碼電子郵件已設為開啟
  3. 自訂重設密碼頁面的 URL 中輸入登陸頁面的 URL

當提供此值時,App ID 會呼叫 URL 以及 context 查詢。 呼叫 context 時,會使用 /forgot_password/confirmation_result 參數來接收結果。 如果結果成功,則您可以顯示自訂頁面。

將隨機字串新增至您的自訂重設密碼頁面,並在提交要求時將它傳遞給您的後端。 讓您的處理程式驗證字串,並只在 /change_password 端點有效時,才會呼叫它。 這樣做,可以減少後端重設密碼端點的漏洞。

變更密碼

您可以透過兩種方式來使用 /change_password 端點: 當使用者提交重設要求時,或當使用者登入您的應用程式且想要更新其密碼時。

在呼叫 /change_password API 以容許使用者重設其密碼之前,強烈建議您使用 /forgot_password/confirmation_result 端點來檢查 context 是否有成功的結果。 此作業會為後端重設密碼處理程序新增更高層次的安全,並確保只有在 context 仍然有效時,使用者才能修改其密碼。

若要在重設要求之後更新使用者的密碼,請在要求內文中提供下列資料:

  • 您的承租戶 ID。
  • 使用者的新密碼。
  • 「雲端目錄」使用者 UUID。
  • 選用項目:從中執行密碼重設的 IP 位址。 如果您選擇傳遞 IP 位址,則位置保留元 %{passwordChangeInfo.ipAddress} 可供變更密碼電子郵件範本使用。

視您的配置而定,當密碼變更時,App ID 會傳送電子郵件給使用者,讓他們知道已發生變更。

若要容許使用者在登入應用程式時變更其密碼,請在要求內文中提供下列資料:

  • 您的承租戶 ID。
  • 使用者的新密碼。
  • 「雲端目錄」使用者 UUID。

您的變更密碼頁面必須提示使用者輸入其現行密碼及其新密碼。

您的後端會使用 ROP API 來驗證使用者的現行密碼,如果有效,則會使用新密碼來呼叫端點。 取決於您的配置,當密碼變更時,App ID 可能會傳送電子郵件給使用者,讓他們知道發生變更。

重新傳送

當使用者因故無法收到電子郵件時,您可以使用 /resend/<templateName> 重新傳送電子郵件。

在要求內文中提供下列資料:

  • 承租戶 ID。
  • 範本名稱
  • 「雲端目錄」使用者 UUID。

變更詳細資料

當使用者登入您的應用程式時,他們可以更新其部分資訊。 您可以使用 /Users/<userID> 獲取和更新他們的資訊。

更新使用者詳細資料時,端點會在請求體中以 SCIM 格式取得更新的使用者資料。 請確定您只變更相關的詳細資料。

無法變更其電子郵件位址。