Closed vfa-tamhh closed 4 years ago
Hiện tại có một số comment như sau. Anh check giúp em nhe.
1/ Về chứ năng login và SignUP sử dụng AppleID
Sau khi confirm method, thì KH thấy hiện tại đang có 2 method là signUpWith và loginWith, nhưng à sau khi test hai chức năng này như bên dưới và implement thì kết quả giống nhau. Có thể qua được phần chứng thực, nhưng mà currentUser không có hiển thị lên nên rấtt khó phán đoán là đã login hay chưa.
Vì vậy, nhờ mình confirm lại xem do implement có vấn đề hay chức năng có vấn đề. Thêm nữa là trong chỗ comment của LoginWith(), đang được ghi như bên dưới. Có thể setting như vậy bên chức login cũng được nhỉ.
Nội dung comment: Tiến hành login(get session token) chứng thực userSNS và setting CurrentUser
2/ Về chức năng link, sử dụng method loginWith như bên dưới và implemt rồi, nhưng mà vẫn không thể implement chức năng linkWith được, confirm lại imlement method hiện tại giúp KH.
3/ Ngoài ra, khôgn thấy phần implement chức năng unlink. Check lại phần này giúp KH luôn ạ
window.cordova.plugins.SignInWithApple.signin(
{ requestedScopes: [0, 1] },
function(data){
// Sign in apple with NifCloud here...
var authData = {id:data.user,
access_token:data.authorizationCode,
client_id:"asia.vitalify.xxxx"};
var user = new ncmb.User();
user.signUpWith("apple", authData) // ユーザの登録
.then(function(resUser){
// Login Mbaas with resUser
return ncmb.User.loginWith(resUser); // SNS連携したユーザでログイン
})
.then(function(user){
// ログイン後処理
alert(JSON.stringify(user));
})
.catch(function(err){
// エラー処理
alert(JSON.stringify(err));
});
// alert(JSON.stringify(succ));
},
function(err){
alert(JSON.stringify(err));
}
);
Đối với loginWith, theo source code hiện tại thì sử dụng hàm này có thể tạo được user khi sử dụng login với SNS user. Theo code thì thấy sau khi loginWith thì sẽ tồn tại currentUser tại: https://github.com/NIFCLOUD-mbaas/ncmb_js/blob/master/lib/user.js#L685 Nhưng khi thử nghiệm thực tế, thì chỉ vừa loginWith xong thì currentUser tồn tại. Nhưng gọi đến hàm getCurrentUser thì lại không tồn tại ==> nghi ngờ hàm có lỗi. 2, 3. Hiện tại NCMB js không có hàm link hoặc unlink. ==> Cần phải thêm 2 hàm này.
本件ご対応ありがとうございました。以下の各機能が正常に動作していることを確認しました。
動作確認コードは以下となります。
function doRegisterApple(){
alert ("doRegister/Login Apple");
window.cordova.plugins.SignInWithApple.signin(
{ requestedScopes: [0, 1] },
function(succ){
console.log(JSON.stringify(succ));
alert(JSON.stringify(succ));
// Sign in apple with NifCloud here...
var authData = {id:succ.user,
access_token:succ.authorizationCode,
client_id:"fjct.****.***"};
var user = new ncmb.User();
user.signUpWith("apple", authData) // ユーザの登録
.then(function(resUser){
return ncmb.User.loginWith(resUser);
})
.then(function(user){
// ログイン後処理
alert("After register/login Apple OD: " + JSON.stringify(user));
})
.catch(function(err){
// エラー処理
alert("Register Apple ID Error: " + JSON.stringify(err));
});
// alert(JSON.stringify(succ));
},
function(err){
console.log(err);
alert("Apple ID Error" + JSON.stringify(err));
}
);
}
function doLink(){
alert ("doLink");
ncmb.User.login("test", "test")
.then(function(data){
// ログイン後処理
alert("Login is OK: " + JSON.stringify(data))
window.cordova.plugins.SignInWithApple.signin(
{ requestedScopes: [0, 1] },
function(succ){
console.log(JSON.stringify(succ));
alert(JSON.stringify(succ));
// Sign in apple with NifCloud here...
var authData = {id:succ.user,
access_token:succ.authorizationCode,
client_id:"fjct.****.***"};
var currentUser = ncmb.User.getCurrentUser();
currentUser.linkWith("apple",authData)
.then(function(resUser){
// Handler linkWith apple id successfully.
alert("After Link: " + JSON.stringify(resUser));
var currentUser = ncmb.User.getCurrentUser();
if (currentUser) {
alert("ログイン中のユーザー: " + currentUser.get("userName"));
} else {
alert("未ログインまたは取得に失敗");
}
}).catch(function(err){
// エラー処理
alert("Link Error: " +JSON.stringify(err));
});
},
function(err){
console.log(err);
alert("Apple ID Error" + JSON.stringify(err));
}
);
})
.catch(function(err){
// エラー処理
alert(JSON.stringify(err));
});
}
function doUnlink(){
alert ("doUnlink");
ncmb.User.login("test", "test")
.then(function(data){
// ログイン後処理
alert("Login is OK: " + JSON.stringify(data))
var currentUser = ncmb.User.getCurrentUser();
if (currentUser) {
currentUser.unLinkWith("apple")
.then(function(resUser){
alert("After unlink:" + JSON.stringify(resUser));
}).catch(function(err){
// エラー処理
alert("Unlink error: " + JSON.stringify(err));
});
}else {
alert("Not logined user");
}
})
.catch(function(err){
// エラー処理
alert("Error login user test" + JSON.stringify(err));
});
}
function doLogout(){
ncmb.User.logout()
.then(function(){
var currentUser = ncmb.User.getCurrentUser();
alert("ログアウトした後のcurrent user" + JSON.stringify(currentUser));
})
.catch(function(err){
alert("Error logout: " + JSON.stringify(err));
});
alert ("doLogout");
}
function doCheckCurrent(){
alert ("doCheckCurrent");
var currentUser = ncmb.User.getCurrentUser();
alert("ログイン中current user:" + JSON.stringify(currentUser));
}
概要(Summary)
動作確認手順(Step for Confirmation)
Run the unit test. Manual test.