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