wixLocation.to () - как перейти на динамическую страницу с помощью wixLoation.to () - PullRequest
0 голосов
/ 27 июня 2019

У меня есть страница входа в систему, и я хочу проверить имя пользователя и пароль в базе данных с именем ProfileInfo (в этой базе данных есть только два столбца - имя пользователя и пароль), и, если она совпадает, страница перейдет в динамический Страница профиля.

У меня два вопроса

  1. Как сделать запрос из базы данных и проверить имя пользователя и пароль?
  2. Как использовать wixLocation.to () для перехода на динамическую страницу?

screenshot

1 Ответ

0 голосов
/ 27 июня 2019

Во-первых, это не очень безопасный способ работы с пользовательскими логинами.Возможно, вы захотите рассмотреть функциональность встроенных членов Wix.

При этом вы определенно хотите убедиться, что ваша коллекция ProfileInfo имеет очень ограниченные разрешения.Кроме того, вы хотите запросить и проверить пароли в бэкэнде.

Итак, в каком-то бэкэнд-веб-модуле (здесь я предполагаю, что это authenticate.jsw), вы должны написать функцию, подобную этой:

import wixData from 'wix-data';

export function authenticate(username, password) {
  return wixData.query("ProfileInfo")
    .eq("username", username)
    .find({"supressAuth": true})
    .then( (results) => {
      if(results.items.length > 0) {
        return password === results.items[0].password;
      }
    } );
}

Затем из кода вашей страницы выможно назвать это так.Невозможно точно сказать, что должен содержать wixLocation.to(), не зная, как вы настроили свою динамическую страницу.Здесь я предполагаю, что вы установили его с префиксом Profile, и он основан на username.

import {authenticate} from 'backend/authenticate';
import wixLocation from 'wix-location';

export function button_click() {
  authenticate($w("#username").text, $w("#password").text)
    .then( (authenticated) => {
      if(authenticated) {
        wixLocation.to(`/Profile/${$w("#username")}`)
      }
    } );
}
...