注册javascript - 在注册新用户时出现“错误209无效会话令牌”

时间:2015-08-19 19:12:25

标签: parse-platform

我在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数据库的屏幕截图:

enter image description here

我已经搜索了错误消息,解决方案始终是注销当前用户。但是,如果没有用户存在,这不是我可以采取的行动。

所以我不仅想解决这个问题,而且还知道将来如何防止这个问题,以便我的应用程序可以安全使用。

编辑:我在Parse.com中直接创建了一个用户,写了一个登录该用户的函数,但是得到了同样的错误。我完全陷入困境,直到这个会话问题得到解决。

2 个答案:

答案 0 :(得分:16)

从本地存储中删除所有会话令牌以及Parse相关的任何其他内容:

here

如果需要,请关闭旧版会话令牌,并从头开始关注enter image description here

migration tutorial

答案 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);
      });
  };