reset.tsx 905 B

1234567891011121314151617181920212223242526272829303132
  1. import {
  2. checkToken,
  3. getCryptoString,
  4. makeErrorResponse,
  5. makeSuccessResponse,
  6. } from "utils/server.ts";
  7. import { find, update } from "utils/db.ts";
  8. import { define } from "utils/state.ts";
  9. export const handler = define.handlers({
  10. async POST(ctx) {
  11. const req = ctx.req;
  12. const reqJson = await req.json();
  13. const tokenUserId = checkToken(req);
  14. if (tokenUserId && reqJson.old && reqJson.new) {
  15. const user = find("User", { id: tokenUserId }, ["password"]);
  16. if (user.length > 0) {
  17. // Match old password
  18. if (
  19. await getCryptoString(reqJson.old, "MD5") === user[0][0] as string
  20. ) {
  21. // Store new password
  22. update("User", tokenUserId, {
  23. password: await getCryptoString(reqJson.new, "MD5"),
  24. });
  25. return makeSuccessResponse(true);
  26. }
  27. }
  28. }
  29. return makeErrorResponse();
  30. },
  31. });