我在angularJS应用程序中编写了一个简单的函数来注册新用户:
$scope.registerUser = function(username, password) {
var user = new Parse.User();
user.set("username", username);
user.set("email", username);
user.set("password", password);
user.signUp(null, {
success: function(result) {
console.log(result);
$scope.registerUserSuccess = true;
$scope.registerUserError = false;
$scope.registerUserSuccessMessage = "You have successfully registered!";
$scope.$apply();
$timeout(function(){
$state.go("user");
}, 1000);
},
error: function(user, error) {
$scope.registerUserError = true;
$scope.registerUserSuccess = false;
$scope.registerUserErrorMessage = "Error: [" + error.code + "] " + error.message;
$scope.$apply();
}
});
最初它运行良好,但是当我通过Parse.com直接删除所有用户时,我无法再使用此功能注册新用户。每次我收到错误209无效的会话令牌。这是我的Parse数据库的屏幕截图:
我已经搜索了错误消息,解决方案始终是注销当前用户。但是,如果没有用户存在,这不是我可以采取的行动。
所以我不仅想解决这个问题,而且还知道将来如何防止这个问题,以便我的应用程序可以安全使用。
编辑:我在Parse.com中直接创建了一个用户,写了一个登录该用户的函数,但是得到了同样的错误。我完全陷入困境,直到这个会话问题得到解决。
答案 0 :(得分:16)
答案 1 :(得分:0)
在使用back4app使用本机生成应用程序时,我遇到了同样的错误。清除本地存储中所有与解析相关的内容:
添加
import { AsyncStorage } from "react-native";
进入页面并使用
AsyncStorage.clear();
请参见以下示例:
import { AsyncStorage } from "react-native";
import Parse from "parse/react-native";
// Initialize Parse SDK
Parse.setAsyncStorage(AsyncStorage);
Parse.serverURL = "https://parseapi.back4app.com"; // This is your Server URL
Parse.initialize(
"APPLICATION_ID_HERE", // This is your Application ID
"JAVASCRIPT_KEY_HERE" // This is your Javascript key
);
.........
_handleSignup = () => {
// Pass the username, email and password to Signup function
const user = new Parse.User();
user.set("username", "username);
user.set("email", "email");
user.set("password", "password");
user.signUp().then(user => {
AsyncStorage.clear();
if (condition) {
Alert.alert(
"Successful!",
"Signin Successful! Log in to your account.",
[
{
text: "Proceed",
onPress: () => {
//in this example, i navigated back to my login screen
this.props.navigation.navigate("LoginScreen");
}
}
],
{ cancelable: false }
);
}
})
.catch(error => {
Alert.alert("" +error);
});
};