mysql_native_password.js 844 B

1234567891011121314151617181920212223242526272829303132
  1. 'use strict';
  2. //const PLUGIN_NAME = 'mysql_native_password';
  3. const auth41 = require('../auth_41.js');
  4. module.exports = pluginOptions => ({ connection, command }) => {
  5. const password =
  6. command.password || pluginOptions.password || connection.config.password;
  7. const passwordSha1 =
  8. command.passwordSha1 ||
  9. pluginOptions.passwordSha1 ||
  10. connection.config.passwordSha1;
  11. return data => {
  12. const authPluginData1 = data.slice(0, 8);
  13. const authPluginData2 = data.slice(8, 20);
  14. let authToken;
  15. if (passwordSha1) {
  16. authToken = auth41.calculateTokenFromPasswordSha(
  17. passwordSha1,
  18. authPluginData1,
  19. authPluginData2
  20. );
  21. } else {
  22. authToken = auth41.calculateToken(
  23. password,
  24. authPluginData1,
  25. authPluginData2
  26. );
  27. }
  28. return authToken;
  29. };
  30. };