1

Hi i have developed a login form (username,password and submit button) using a MySQL connection through soap webservices in my android application. here i forget my password means i can't access my account.then how is access my account.first registration page is completed all before go to login page.registration page have username,password and email.so when i forget my password means click the forget password textview.then it is go to forget password activity.here when i entered my registered email id means my password is send to my email id.how can i do.please guide me. like below image:enter image description here

enter image description here

How can i create dis app.I done dis code in the XML resource for the activity.how do I create the ForgetPassword Java code? I can't seem to be able to do this.

stillnow my java code is :

Login.java :

package com.soap;

 import org.ksoap2.SoapEnvelope;
 import org.ksoap2.serialization.PropertyInfo;
 import org.ksoap2.serialization.SoapObject;
 import org.ksoap2.serialization.SoapPrimitive;
 import org.ksoap2.serialization.SoapSerializationEnvelope;
 import org.ksoap2.transport.HttpTransportSE;
 import android.app.Activity;
 import android.content.Intent;
 import android.os.Bundle;
 import android.view.View;
 import android.widget.Button;
 import android.widget.EditText;
 import android.widget.TextView;

 public class Login extends Activity {
 private final String NAMESPACE = "http://ws.userlogin.com";
private final String URL = "http://192.168.1.168:8085/Login/services/Login?wsdl";
private final String SOAP_ACTION = "http://ws.userlogin.com/authentication";
private final String METHOD_NAME = "authentication";
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.login);
    Button register = (Button) findViewById(R.id.btn_reg);
    register.setOnClickListener(new View.OnClickListener() {

        public void onClick(View v) {
            // Switching to Register screen
            Intent i = new Intent(getApplicationContext(), Register.class);
            startActivity(i);
        }
    });
    Button logout = (Button) findViewById(R.id.btn_logout);
    logout.setOnClickListener(new View.OnClickListener() {

        public void onClick(View v) {
            // Switching to Register screen
            Intent i = new Intent(getApplicationContext(), Login.class);
            startActivity(i);
        }
    });
    TextView forgetpassword = (TextView) findViewById(R.id.TextView03);
    forgetpassword.setOnClickListener(new View.OnClickListener() {

        public void onClick(View v) {
            // Switching to Register screen
            Intent i = new Intent(getApplicationContext(), ForgetPassword.class);
            startActivity(i);
        }
    });
    Button login = (Button) findViewById(R.id.btn_login);
    login.setOnClickListener(new View.OnClickListener() {

     public void onClick(View arg0) {
     loginAction();

        }
       });
        }

  private void loginAction(){
  SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME);

    EditText userName = (EditText) findViewById(R.id.tf_userName);
    String user_Name = userName.getText().toString();
    EditText userPassword = (EditText) findViewById(R.id.tf_password);
    String user_Password = userPassword.getText().toString();

  //Pass value for userName variable of the web service
    PropertyInfo unameProp =new PropertyInfo();
    unameProp.setName("userName");//Define the variable name in the web service method
    unameProp.setValue(user_Name);//set value for userName variable
    unameProp.setType(String.class);//Define the type of the variable
    request.addProperty(unameProp);//Pass properties to the variable

  //Pass value for Password variable of the web service
    PropertyInfo passwordProp =new PropertyInfo();
    passwordProp.setName("password");
    passwordProp.setValue(user_Password);
    passwordProp.setType(String.class);
    request.addProperty(passwordProp);

    SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
    envelope.setOutputSoapObject(request);
    HttpTransportSE androidHttpTransport = new HttpTransportSE(URL);

    try{
        androidHttpTransport.call(SOAP_ACTION, envelope);
           SoapPrimitive response = (SoapPrimitive)envelope.getResponse();
           String status = response.toString();
           TextView result = (TextView) findViewById(R.id.tv_status);
           result.setText(response.toString());

           if(status.equals("Success!"))
            {
               Intent intent = new Intent(Login.this,HomePage.class);
               intent.putExtra("username",userName.getText().toString());
               startActivity(intent);


            }
           else
            {
               Intent i = new Intent(getApplicationContext(), Login.class);
               startActivity(i);
            }
           }



    catch(Exception e){

    }
   }

     }
Krishna Veni
  • 2,217
  • 8
  • 27
  • 53
  • Are you looking for the logic of forget Password ? – SALMAN Jul 18 '12 at 10:29
  • yes i wish to need when i forget my password means click the forget password textview.then it is go to forget password activity.here when i entered my registered email id means my password is send to my email id..how can i do – Krishna Veni Jul 18 '12 at 11:15
  • If your user password isnt encrypted at server end than there can be much easier solution – SALMAN Jul 18 '12 at 13:34

3 Answers3

2

In case if user password isnt encrypted.

1-Create a webservice emailPasswordToUser This "emailPasswordToUser" web service will receive one parameter of "emailaddress" which user will enter in your Android application and after submitting button your "emailPasswordToUser" will be hit through KSOAP library.

"emailPasswordToUser" This web service will check:

A - whether the user email address does exist in Database or not.

B - If it exist it will retrive user information from "emailaddress" ,which is received from web service parameter, and email a user password to this "emailaddress" and will return message to Android end which will be parsed "Your password has been sent to your email address"

C - If it does not exist the webservice will return a message "No such user exist"

Thanks

SALMAN
  • 2,031
  • 1
  • 20
  • 18
  • It is extremely bad practice to store a password in a recoverable form, and even worse to send said password back to the user. Passwords should be salted and hashed with something like BCrypt. See http://stackoverflow.com/questions/1054022/best-way-to-store-password-in-database. – Christophe L Sep 16 '15 at 04:52
0

You have to create some server, that can access to MySQL, find there password by email and send email to user. You should not do it in the app.

Jin35
  • 8,602
  • 3
  • 32
  • 52
0
  1. You can use Java Mail API to send mail from your application
  2. You must have Internet connection to use this feature in you application.
  3. Refer this link for Java Mail API implementation. Mail
Community
  • 1
  • 1