如何在使用ACL時檢查用戶名是否與parse.com Javascript SDK一起使用:公共讀/寫在用戶類內的所有用戶中被禁用?當所有用戶ACL:公用讀/寫禁用時,如何檢查用戶名是否與parse.com一起使用?
說明: 出於安全考慮我的所有用戶類/表用戶有私人 ACL(訪問控制列表),或換言之,針對公共讀/寫ACL是禁用,這意味着經過認證的用戶請閱讀只有自己的信息。
正如你能想象的任何查詢,用戶將獲得空非登錄用戶所以沒有辦法來檢查,如果用戶是通過在用戶類別使用查詢已經採取
我設法解決這個由singUp一個新的用戶,然後解析會返回一個400錯誤一些好的信息:
{code: 202, error: "username Test already taken"}
與方法的問題是,我做實時驗證當用戶在輸入文本領域:
個HTML AngularJS:
<form name="form">
<h3>e-mail</h3>
<input class="form-control"
name="email"
placeholder="try [email protected] or [email protected]"
type="email"
required ng-model="email"
ng-model-options="{ debounce: 100 }"
ui-validate="{blacklist: 'notBlackListed($value)'}"
ui-validate-async="{alreadyExists: 'doesNotExist($modelValue)'}"
>
<span ng-show='form.email.$error.blacklist'>This e-mail is black-listed!</span>
<span ng-show='form.email.$error.alreadyExists'>This e-mail is <b>already taken!</b></span>
<span ng-show='form.email.$pending'>Verifying e-mail on server...</span>
<br>is form valid: {{form.$valid}}
</form>
的Javascript AngularJS:
$scope.doesNotExist = function (value) {
Parse.initialize(KEY0, KEY1);
var deferral = $q.defer();
var user = new Parse.User();
user.set("username", "Test");
user.set("password", "anyapssword");
user.signUp(null, {
success: function(user) {
// Hooray! Let them use the app now.
console.log("success!");
// Holly shit now I have to delete the user :(and wait for the full form to be submmited
user.destroy({
success: function(myObject) {
// The object was deleted from the Parse Cloud.
console.log("destroy!!!!!!!!!!!");
},
error: function(myObject, error) {
// The delete failed.
// error is a Parse.Error with an error code and message.
console.log("failed destroy!!!!!!!!!!!");
}
});
deferral.resolve(user);
},
error: function(user, error) {
console.log("Error: " + error.code + " " + error.message);
deferral.reject("mierda!");
}
});
return deferral.promise;
};
所以,我怎麼可以檢查用戶名時採取parse.com當ACL:公共讀/寫是禁用?
我使用AngularUI插件快速驗證:https://htmlpreview.github.io/?https://github.com/angular-ui/ui-validate/master/demo/index.html
謝謝!
這個函數將會如何?你能指導我一點嗎? – lito