【问题标题】:How to change password using old password on parse android如何在解析android上使用旧密码更改密码
【发布时间】:2015-02-13 11:04:54
【问题描述】:

我有一个 android 应用程序,用户可以在其中更改他/她的密码我的问题是我如何使用解析验证用户的旧密码我有 3 个编辑文本“旧密码、新密码和确认新密码”。

我在 parse.com 上搜索,但找不到任何解决方案 解析不使用获取密码获取数据。 我正在这样做

String get_confrimpass=currentuser.getpassword();



if(get_confrimpass.replaceAll("\\s", "").equals(current_pass_check))
            {           }

【问题讨论】:

  • 更好地搜索:) parse.com old password "您可以尝试以用户身份再次登录,使用他们的用户名(可用)和他们输入的旧密码的值。如果登录成功,旧密码正确,您可以继续设置新密码。如果失败,用户将因输入错误密码而被注销。- by Héctor Ramos"
  • 这是一个非常愚蠢的解决方案。至少他们应该提供一些更改密码的功能。

标签: android validation parse-platform passwords


【解决方案1】:

您可以尝试使用他们提供给您的当前用户名和密码登录他们。如果登录成功,则旧密码正确。即

ParseUser.logInInBackground(ParseUser.getCurrentUser().getUsername(), currentPassword, new LogInCallback() {  
    public void done(ParseUser user, ParseException e) {    
        if (user != null) {      
             // Hooray! The password is correct 
        } else {      
             // The password was incorrect 
        }  
   }
});

在上面的示例中,“currentPassword”变量是您将从“旧密码”EditText 中检索的文本

【讨论】:

  • 如果用户已登录,并且输入了错误的“旧密码”,如果用户不小心输入了错误的旧密码,用户不会被注销(这可能是不希望的行为)密码?
  • 不,当前用户只有在用户登录成功后才会改变。否则当前用户保持不变。
  • 这个方法唯一的问题是它创建了不必要的会话令牌。
  • 位无关紧要,因为 Parse 现已停产
  • @JayDev only parse.com,这对于使用 Parse Server 的人来说仍然非常重要
【解决方案2】:
final ParseUser currentUser = ParseUser.getCurrentUser();
final String userName = ParseUser.getCurrentUser().getUsername();

ParseUser.logInInBackground(userName, oldPass, new LogInCallback() {
   @Override
   public void done(ParseUser user, ParseException e) {
         if (user != null) {
            if (et.length() < 6)
              Toast(getActivity(), "Password is short, Min char 6", Toast.LENGTH_LONG).show();
            else {
                currentUser.setPassword(newPass);
                currentUser.saveInBackground();
                ParseUser.logOut();
                ParseUser.logInInBackground(userName, newPass, new LogInCallback() {
                @Override
                public void done(ParseUser parseUser, ParseException e) {
                    if (e == null) {
                    Toast(getActivity(), "Password change", Toast.LENGTH_LONG).show();
                     } else
             Toast(getActivity(), "Network Error", Toast.LENGTH_LONG).show();
                                        }
                                    });
                                }
                            } else {
                                new CustomToast(getActivity(), "Old Password is incorrect", Toast.LENGTH_LONG);
                            }
                        }
                    });

【讨论】:

    猜你喜欢
    • 2014-12-10
    • 1970-01-01
    • 2015-02-23
    • 1970-01-01
    • 2014-07-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多