wixLocation.to()-如何使用wixLoation.to()转移到动态页面

时间:2019-06-27 03:40:59

标签: wixcode

我有一个登录页面,我想检查一个名为ProfileInfo的数据库中的用户名和密码(此数据库中只有两列-用户名和密码),如果匹配,该页面将切换到动态个人资料页面。

我有两个问题

  1. 如何从数据库中查询并检查用户名和密码?
  2. 如何使用wixLocation.to()切换到动态页面?

screenshot

1 个答案:

答案 0 :(得分:0)

首先,这不是处理用户登录的非常安全的方法。您可能要考虑使用内置的Wix成员功能。

话虽如此,您绝对要确保您的ProfileInfo集合设置了非常严格的权限。另外,您将需要在后端查询并检查密码。

因此,在某些后端Web模块中(这里我假设它是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")}`)
      }
    } );
}