Title: Adding Salt
Last modified: May 25, 2019

---

# Adding Salt

 *  Resolved [wburling1](https://wordpress.org/support/users/wburling1/)
 * (@wburling1)
 * [7 years ago](https://wordpress.org/support/topic/adding-salt/)
 * Not sure if this has been discussed before but asking again.
    I have an external
   database where the username and password fields are in normal text. I want to
   use this database with the external login plugin but do not know how to make 
   the password change so the the plugin will allow users log in with their current
   password. I also am not sure where I set a separate salt for each password. Thanks
   for any help on this. Wayne

Viewing 15 replies - 1 through 15 (of 42 total)

1 [2](https://wordpress.org/support/topic/adding-salt/page/2/?output_format=md) 
[3](https://wordpress.org/support/topic/adding-salt/page/3/?output_format=md) [→](https://wordpress.org/support/topic/adding-salt/page/2/?output_format=md)

 *  Plugin Author [tbenyon](https://wordpress.org/support/users/tbenyon/)
 * (@tbenyon)
 * [7 years ago](https://wordpress.org/support/topic/adding-salt/#post-11574051)
 * Hey [@wburling1](https://wordpress.org/support/users/wburling1/),
 * You may already be aware so I apologise in advance for this. Storing password
   in plain text in a database is incredibly dangerous for your users. For the reasons
   on why, this article is amazing:
    [https://martinfowler.com/articles/web-security-basics.html#HashAndSaltYourUsersPasswords](https://martinfowler.com/articles/web-security-basics.html#HashAndSaltYourUsersPasswords)
 * However, the nice thing is that the plugin will help you migrate user’s passwords.
   When the user logs in and it’s checked the username and password are correct 
   in the external database it uses that password to create a new user in the WordPress
   database.
 * The great thing with that is that the password is stored in the WordPress database
   using Bcrypt which is much safer for your users. The only downside is that those
   users plain text passwords will still exist in your external database.
 * To answer your question “_I want to use this database with the external login
   plugin but do not know how to make the password change so the the plugin will
   allow users log in with their current password._” – This is all handled by the
   plugin. You don’t have to do anything.
 * You also asked “_I also am not sure where I set a separate salt for each password._”–
   With Bcrypt the salts are all handled automatically. You don’t have to do anything
   and your user’s passwords will be using a safe salting method.
 * If I have misunderstood you and you are talking about the external database using
   salts please give more details and I’ll try my best to answer your question.
 * Hope this helps,
 * Tom
 *  Thread Starter [wburling1](https://wordpress.org/support/users/wburling1/)
 * (@wburling1)
 * [7 years ago](https://wordpress.org/support/topic/adding-salt/#post-11574246)
 * Tom,
    Thank you for your quick reply. Let me see if I understand your answer.
   If one of my users goes to log in using their current password (stored in ext
   database in normal text) it will allow them to continue to log in but encrypt
   the password in the WP user table.
 * My question about changing the ext database password field is to encrypt it like
   the WP user table, would this work? Another way would be if I blank out the password
   in the ext database would it still allow the user to use their current password(
   then store it in the WP user table in encrypted format) or say that it is invalid.
 * Wayne
    -  This reply was modified 7 years ago by [wburling1](https://wordpress.org/support/users/wburling1/).
 *  Thread Starter [wburling1](https://wordpress.org/support/users/wburling1/)
 * (@wburling1)
 * [7 years ago](https://wordpress.org/support/topic/adding-salt/#post-11574260)
 * Tom,
    Just thought of one other thing. If a user is active in the ext database,
   creates a username and password in the WP user table, then goes inactive in the
   external database, will they still be able to log into the wordpress site?
 * Wayne
 *  Plugin Author [tbenyon](https://wordpress.org/support/users/tbenyon/)
 * (@tbenyon)
 * [7 years ago](https://wordpress.org/support/topic/adding-salt/#post-11574754)
 * Hey Wayne,
 * > If one of my users goes to log in using their current password (stored in ext
   > database in normal text) it will allow them to continue to log in but encrypt
   > the password in the WP user table.
 * This is correct. Technically it’s called hashing and not encryption but you’re
   right 🙂
 * > My question about changing the ext database password field is to encrypt it
   > like the WP user table, would this work? Another way would be if I blank out
   > the password in the ext database would it still allow the user to use their
   > current password (then store it in the WP user table in encrypted format) or
   > say that it is invalid.
 * There is currently no functionality to do this. I was working on a feature that
   would sync the data in the databases but it is far from finished and requires
   a lot of testing.
 * What I can do for you in the sort term is write a WordPress Hook that will trigger
   when we authenticate the user. This would allow you to write custom PHP code 
   that would give you the username once they’ve been authenticated and you could
   write your own SQL query to:
    - delete the user
    - remove the password
    - update the password to the hashed version
    - Or anything else you may want to do
 * This will give users of the plugin flexibility over what they want to do when
   this happens.
 * I’ll even write you some example code to get you going on this.
 * > Just thought of one other thing. If a user is active in the ext database, creates
   > a username and password in the WP user table, then goes inactive in the external
   > database, will they still be able to log into the wordpress site?
 * External Login creates a new user in the WordPress database when they are authenticated.
   Because I’m going to add this feature for you where the WP database is the first
   thing to check, once a user has been created in the WordPress database, External
   Login will never look at the external database again.
 * I hope this answers your questions. Let me know if you’re happy with this solution
   and I’ll get started on the work involved.
 * Thanks,
 * Tom
 *  Thread Starter [wburling1](https://wordpress.org/support/users/wburling1/)
 * (@wburling1)
 * [7 years ago](https://wordpress.org/support/topic/adding-salt/#post-11576040)
 * Tom,
    Thank you for your answer. I think the hook would give me the flexability
   to do what is needed by my customer. The example code would be very helpful, 
   thank you.
 * One other thing, if the username is in the external database when a user tries
   to log in but the password is blank what will happen then?
 * Wayne
 *  Plugin Author [tbenyon](https://wordpress.org/support/users/tbenyon/)
 * (@tbenyon)
 * [7 years ago](https://wordpress.org/support/topic/adding-salt/#post-11577518)
 * > One other thing, if the username is in the external database when a user tries
   > to log in but the password is blank what will happen then?
 * External Login will check to see if the password that was entered matches the
   one in the database. For this reason, if the user typed nothing and the password
   was nothing, they would be authenticated. HOWEVER, at the top of the authentication
   script I only query the database if the password entered is not blank. So they
   would not be authenticated.
 * Thanks,
 * Tom
    -  This reply was modified 7 years ago by [tbenyon](https://wordpress.org/support/users/tbenyon/).
 *  Thread Starter [wburling1](https://wordpress.org/support/users/wburling1/)
 * (@wburling1)
 * [7 years ago](https://wordpress.org/support/topic/adding-salt/#post-11577628)
 * Thank you Tom,
    I am looking forward to the Hook. It will be a large help to 
   me. Otherwise I think the plugin is what I have been looking for. Wayne
 *  Thread Starter [wburling1](https://wordpress.org/support/users/wburling1/)
 * (@wburling1)
 * [6 years, 11 months ago](https://wordpress.org/support/topic/adding-salt/#post-11604302)
 * Tom,
    New Question:
 * What exactly does the following do when checked? I am ready to enable the plugin
   but not sure of what this is doing.
 * Disable Local Login
    Tick this box if you want to disable the login attempt with
   the WordPress Database if the external login fails. This will only take effect
   if External Login is enabled.
 * Thanks
    Wayne
 *  Plugin Author [tbenyon](https://wordpress.org/support/users/tbenyon/)
 * (@tbenyon)
 * [6 years, 11 months ago](https://wordpress.org/support/topic/adding-salt/#post-11609533)
 * Hey [@wburling1](https://wordpress.org/support/users/wburling1/),
 * I wanted to let you know that I’ve finished coding the feature to add in a hook
   when the user is authenticated from the external database.
 * I am not going to deploy this just yet as I am going to add one more feature 
   to this release which I am about to start work on (disccussed [here](https://wordpress.org/support/topic/prioritize-local-account-if-it-exists/#post-11577547)).
 * If however you wanted to download a copy of the code to test it for now you can
   grab it [here](https://github.com/tbenyon/wordpress_external_login_plugin/archive/add_action_when_user_is_authenticated.zip).
 * The hook I have created is an action hook called “exlog_hook_action_authenticated”.
 * This hook is run after the user has been authenticated from the external database.
 * This will not run if the user is authenticated from the local WordPress database.
 * Below is an example of code that could be added to your `functions.php` file 
   to delete a user from the external database after they have logged in.
 *     ```
       /**
        * Example function to do something after External Login has authenticated a user
        *
        * In this case we are deleting the user from the external database
        *
        * WP User Object $wp_user The WordPress user object for the authenticated user.
        *
        * Array $exlog_user_data An associative array of user data generated when attempting to authenticate the user
        */
       function my_function_to_do_something_after_authentication($wp_user, $exlog_user_data) {
         // Uses the data provided to the plugin to create the database object and data required for a query
         $db_data = exlog_get_external_db_instance_and_fields('mysql');
   
         // A query of your choice
         $rows = $db_data["db_instance"]->delete(
           esc_sql($db_data["dbstructure_table"]),
           array( esc_sql($db_data["dbstructure_username"]) => esc_sql($exlog_user_data['user_login']) )
         );
   
         // Checking if the user was deleted
         if ($rows) {
           error_log('User Successfully deleted from external database');
         } else {
           error_log('Unable to delete user from external database');
         }
       }
   
       add_action('exlog_hook_action_authenticated', 'my_function_to_do_something_after_authentication', 10, 2);
       ```
   
 * I will get back to you when this feature is fully deployed but I’d welcome any
   feedback in the mean time.
 * I will respond to your next query in a follow up message.
 * Thanks,
 * Tom
 *  Plugin Author [tbenyon](https://wordpress.org/support/users/tbenyon/)
 * (@tbenyon)
 * [6 years, 11 months ago](https://wordpress.org/support/topic/adding-salt/#post-11609556)
 * Hi Wayne,
 * I’ll try and answer your question about the disable local login feature here.
 * When a user attempts to login with the External Login plugin activated, the first
   step is it tries to see if a user with the unsername given on the login screen
   exists in the external database.
 * If it can’t find a user or it cannot access the external database, by default,
   it will look to see if that user has already been created in the WordPress database
   and try to log them in from there.
 * If you tick the “Disable local login” box, and the user could not be found in
   the external database OR the connection to the external database could not be
   made, it will no longer try to log you in from the WordPress database and will
   simply not log you in.
 * I hope this helps.
 * Tom
 *  Thread Starter [wburling1](https://wordpress.org/support/users/wburling1/)
 * (@wburling1)
 * [6 years, 11 months ago](https://wordpress.org/support/topic/adding-salt/#post-11609675)
 * Tried to install but got this error, did I do something wrong?
 * Plugin could not be activated because it triggered a fatal error.
 * Fatal error: Cannot redeclare exlog_get_option() (previously declared in /home/
   vwca1/public_html/vwwordpress/wp-content/plugins/external-login/options/wpconfig_options.
   php:4) in /home/vwca1/public_html/vwwordpress/wp-content/plugins/external-login/
   options/wpconfig_options.php on line 17
 *  Plugin Author [tbenyon](https://wordpress.org/support/users/tbenyon/)
 * (@tbenyon)
 * [6 years, 11 months ago](https://wordpress.org/support/topic/adding-salt/#post-11610617)
 * On your server, you need to replace the external login folder with the one from
   the download.
 * You’re current External Login install is in “/home/vwca1/public_html/vwwordpress/
   wp-content/plugins”. You need to replace the files there to test it.
 * Let me know how you get on.
 * Thanks,
 * Tom
 *  Plugin Author [tbenyon](https://wordpress.org/support/users/tbenyon/)
 * (@tbenyon)
 * [6 years, 11 months ago](https://wordpress.org/support/topic/adding-salt/#post-11613558)
 * This is now deployed so you will be able to download the code / update the plugin
   in the normal way.
 * Could you please let me know if it is working for you?
 * Documentation is here:
    [https://wordpress.org/plugins/external-login/#what%20hooks%20are%20available%20in%20the%20external%20login%20flow%3F](https://wordpress.org/plugins/external-login/#what%20hooks%20are%20available%20in%20the%20external%20login%20flow%3F)
    -  This reply was modified 6 years, 11 months ago by [tbenyon](https://wordpress.org/support/users/tbenyon/).
 *  Thread Starter [wburling1](https://wordpress.org/support/users/wburling1/)
 * (@wburling1)
 * [6 years, 11 months ago](https://wordpress.org/support/topic/adding-salt/#post-11613894)
 * Tom,
    I downloaded the latest version. I deleted the External Login directory
   and re-installed from the download. The new changes were there but when I try
   to log in it gives me an invalid userid or password error. The only way that 
   I can log in with my admin userid is to delete the folder. Not sure if i am doing
   something incorrectly but it is not working. Wayne
 *  Plugin Author [tbenyon](https://wordpress.org/support/users/tbenyon/)
 * (@tbenyon)
 * [6 years, 11 months ago](https://wordpress.org/support/topic/adding-salt/#post-11616514)
 * This has only stopped working since this update? Please try and download the 
   copy from wordpress.org from the admin area of your site and see if this fixes
   it.
 * If not, could you please look at your php error logs and send me any issues you
   see.
 * Thanks,
 * Tom

Viewing 15 replies - 1 through 15 (of 42 total)

1 [2](https://wordpress.org/support/topic/adding-salt/page/2/?output_format=md) 
[3](https://wordpress.org/support/topic/adding-salt/page/3/?output_format=md) [→](https://wordpress.org/support/topic/adding-salt/page/2/?output_format=md)

The topic ‘Adding Salt’ is closed to new replies.

 * ![](https://s.w.org/plugins/geopattern-icon/external-login_fbebd6.svg)
 * [External Login](https://wordpress.org/plugins/external-login/)
 * [Frequently Asked Questions](https://wordpress.org/plugins/external-login/#faq)
 * [Support Threads](https://wordpress.org/support/plugin/external-login/)
 * [Active Topics](https://wordpress.org/support/plugin/external-login/active/)
 * [Unresolved Topics](https://wordpress.org/support/plugin/external-login/unresolved/)
 * [Reviews](https://wordpress.org/support/plugin/external-login/reviews/)

 * 42 replies
 * 2 participants
 * Last reply from: [tbenyon](https://wordpress.org/support/users/tbenyon/)
 * Last activity: [6 years, 10 months ago](https://wordpress.org/support/topic/adding-salt/page/3/#post-11749499)
 * Status: resolved