Thursday, 14 May 2015

Register users and login through store procedure mysql

1. Signup a user through store procedure.
2. "mysecret" here you can use your key. password will be encrypted using AES
3. You can call store procedure like below
  1. CALL`AddCustomerDetails`('David Warnor','david@gmail.com','12','male','2377.34','34343.343');
  2. CREATE PROCEDURE `AddCustomerDetails`(
  3. IN `vCustomerName` VARCHAR(50),
  4. IN `vEmail` VARCHAR(50),
  5. IN `vPassword` VARCHAR(50),
  6. IN `eGender` VARCHAR(10),
  7. IN `dLatitude` FLOAT,
  8. IN `dLongitude` FLOAT
  9. )
  10. BEGIN
  11. DECLARE ResultCount INT default 0;
  12. DECLARE skey VARCHAR(15) default 'mysecret';
  13. DECLARE eStatus INT default 1;
  14. DECLARE iCustomerId INT;
  15.  
  16. SET @ResultCount = (SELECT COUNT(iCustomerId) FROM table_name WHERE vEmail = vEmail);
  17. IF (@ResultCount > 0) THEN
  18. SET @iCustomerId = 0;
  19. SELECT @iCustomerId;
  20. ELSE
  21. INSERT INTO table_name
  22. (vCustomerName
  23. ,vEmail
  24. ,vPassword
  25. ,eGender
  26. ,dLatitude
  27. ,dLongitude
  28. ,eStatus
  29. ,dCreatedDate
  30. )
  31. VALUES
  32. (vCustomerName
  33. ,vEmail
  34. ,AES_ENCRYPT(vPassword,skey)
  35. ,eGender
  36. ,dLatitude
  37. ,dLongitude
  38. ,eStatus
  39. ,NOW()
  40. );
  41. SET @iCustomerId = LAST_INSERT_ID();
  42. SELECT @iCustomerId as CustomerId;
  43. END IF;
  44. END
1. Now above will add a entry to your mysql table let create a store procedure which will validate and check credentials.
  1. ALL `CheckLogin`('david@gmail.com', '123123', '0');
  2. CREATE PROCEDURE `CheckLogin`(
  3. IN `Email` VARCHAR(255),
  4. IN `Psw` VARCHAR(255),
  5. IN `UserType` INT(11)
  6. )
  7. BEGIN
  8. DECLARE ResultCount INT;
  9. DECLARE ResultMessage varchar(15);
  10. DECLARE skey VARCHAR(15) default 'secrets';
  11. IF (UserType = 0) THEN
  12. SET @ResultCount = (SELECT COUNT(C.iCustomerId) FROM customerdetails C
  13. WHERE C.vEmail = Email AND C.vPassword = AES_ENCRYPT(Psw,skey) AND C.eStatus = 1);
  14. IF (@ResultCount > 0) THEN #For Customer
  15. SELECT * from customerdetails C WHERE C.vEmail = Email AND C.vPassword = AES_ENCRYPT(Psw,skey)
  16. AND C.eStatus = 1;
  17. ELSE
  18. SET @ResultMessage='User not found.';
  19. SELECT @ResultMessage;
  20. END IF;
  21. ELSE
  22. SET @ResultCount = (SELECT COUNT(V.iVendorId) FROM vendor V WHERE V.vEmail = Email
  23. AND V.vPassword = AES_ENCRYPT(Psw,skey) AND V.eStatus = 1);
  24. IF (@ResultCount > 0) THEN
  25. SELECT * from vendor V WHERE V.vEmail = Email AND V.vPassword = AES_ENCRYPT(Psw,skey)
  26. AND V.eStatus = 1;
  27. ELSE
  28. SET @ResultMessage='vendor not found.';
  29. SELECT @ResultMessage;
  30. END IF;
  31. END IF;
  32. END

No comments: