IMAPSでは、クライアント内にデータをセキュアに保存するための仕組みとして、SLSを提供しています(SLSについてはSLSを参照)。SLSを認証モードで利用している場合、格納データはパスワードをキーにして保護されています。
そのためパスワードが変更された場合、格納された暗号化データを引き継ぐ(暗号化データを新しいパスワードで再暗号化する)必要があります。以下のAPIを呼び出した場合に、SLS内のデータ引き継ぎが必要である旨のエラーが返却されます。
データ引き継ぎが必要な場合、上記メソッドはIMAPSSlsPasswordErrorを返却します。
function login(loginUrl, userId, passwd) { imaps.auth.loginAuto(loginResult, loginError, loginUrl, userId, passwd); } function loginResult(result) { console.log("Login success: "+result ); } function loginError(error) { if (error == "IMAPSSlsPasswordError") { // パスワードが異なるため、データの引き継ぎができなかった場合にエラーが発生します。 // データの引き継ぎを行うかをユーザーに問い合わせ、 // データを引き継ぐ場合は、旧パスワードをユーザーに問い合わせます。 // データを削除する場合は、deleteDataを呼び出します。 // 処理をキャンセルする場合は、logoutを呼び出します。 } } // データの引き継ぎを行う場合の処理 function transData(oldpasswd) { imaps.auth.transData(resultHandler, errorHandler, oldpasswd); } function resultHandler(result) { console.log("暗号化データの引き継ぎが完了しました。"); } function errorHandler(error) { if (error == "IMAPSSlsPasswordError") { // 旧パスワードが異なるため、データの引き継ぎができなかった場合に // エラーが発生します。 // 再度、データの引き継ぎを行うかをユーザーに問い合わせます。 } }