当前位置: 首页 > 知识库问答 >
问题:

重定向用户,如果该用户完成该页面Ionic

夏侯昆琦
2023-03-14

我对如何在登录时重定向用户感到困惑

脚本:

-

我正在计划我的身份验证。ts,第一次登录时,在我的firebase上,我将设置一个类似于1(如果用户完成了测试)和0(如果用户没有完成测试)的检查器

User
|_UID
  |_Checker:"1/0" // Either 1 or 0

以下是登录代码:

loginUser() {
if (!this.loginForm.valid) {
  console.log(this.loginForm.value);
} else {
  this.authData.loginUser(this.loginForm.value.email, this.loginForm.value.password)
    .then(authData => {
      //if user is done with the test
      this.navCtrl.push(HomePage);
      //else
      this.navCtrl.push(TestPage);

    }, error => {
      this.loading.dismiss().then(() => {
        let alert = this.alertCtrl.create({
          message: error.message,
          buttons: [
            {
              text: "Ok",
              role: 'Cancel'
            }
          ]
        });
        alert.present();
      });
    })

一个uth.ts

 loginUser(newEmail: string, newPassword: string): firebase.Promise<any> {
return this.afAuth.auth.signInWithEmailAndPassword(newEmail, newPassword)
   .then(newUser => {
    const x = this.afAuth.auth.currentUser.uid;

    if (x != null) {
      firebase.database().ref('/Users').child(newUser.uid).set({
        email: newEmail,
      })
    } else {
      firebase.database().ref('/Users').child(newUser.uid)
    }
  })}

共有1个答案

冯良才
2023-03-14

如果您确实添加了该检查器,那么您只需添加一个条件

User._Checker ? this.navCtrl.push(HomePage) : this.navCtrl.push(TestPage);

这是在假设checker字段是在用户身份验证数据下创建的自定义字段的情况下进行的。而且,Checker是一个布尔值

使现代化

因此,如果uid checker字段不存在,那么您需要在authdata中创建一个自定义字段,我甚至不确定您是否可以这样做,或者在用户首次完成注册过程时在数据库中创建该字段。我认为如果你想添加额外的用户信息,这是很常见的。

.then(newUser => {
const x = this.afAuth.auth.currentUser.uid;

if (x != null) {
  firebase.database().ref('/Users').child(newUser.uid).set({
    email: newEmail,
    _Checked:true // <- added
  })
} else {
  firebase.database().ref('/Users').child(newUser.uid)
}
 类似资料:
  • 我有一行代码: 它工作良好,但用户可以简单地按下Esc键来取消操作。我试图使用一个事件侦听器来防止Esc键被按下,但它只在用户在初始页面时起作用。一旦他们被重定向,它就会停止工作,他们可以在浏览器中快速按Esc键或地址栏旁边的大X来取消重定向。 有什么办法可以让我完全避免? 编辑:我之所以要这样做,是因为在登录时,它们会自动发送到索引页。我在我的数据库中有一个标志,它检查用户是否已经付款。然后在索

  • 我提出了以下解决方案: 创建表<代码>记录器<代码>(<代码>id<代码>int(11)NOT NULL AUTO\u INCREMENT,<代码>ip<代码>int(11)NOT NULL,<代码>landing<代码>varchar(16)DEFAULT NULL,<代码>updated<代码>timestamp NOT NULL DEFAULT CURRENT\u timestamp ON

  • 嗨,我需要知道如何通过验证用户角色来重定向应用程序,就像:如果ROLE_USER重定向到accountuser.xhtml或者如果ROLE_ADMIN重定向到accountadmin.xtml那样 使用spring security 和身份验证方法 这是我的账户流水:

  • 我在我的网站上有一个登录系统,它将用户从index.phpverify_login_form.php,然后,如果电子邮件/用户名组合匹配一个帐户,他们将被home.php。我遇到的问题是 home.php避免人们在没有登录/注册的情况下仅仅输入websitename.com/home.php。问题是,用户用他们的电子邮件和密码登录,然后被带到home.php,所以他们不必输入用户名。如何获得具有相

  • 问题内容: 这是我的ajax电话: 在我的控制器中,最后有一个重定向指令: 它不会重定向。取而代之的是,它停留在与开始时相同的加载页面上。 问题答案: 如果AJAX调用返回重定向,浏览器将不会重定向。如果您想在AJAX调用后将用户发送到新页面,则需要使用Javascript进行操作。例: 确保浏览器呈现AJAX响应。使用grails 标签,您应该指定一个元素以使用该属性进行更新。

  • 问题内容: 我想设置我的网站,以便如果用户点击该页面并且他们已经登录,它将把他们重定向到主页。如果未登录,它将正常显示。由于登录代码内置在Django中,我该怎么做? 问题答案: 我假设你当前正在使用内置的登录视图, 或你网址中的类似内容。 你可以编写包含默认视图的登录视图。它将检查用户是否已经登录,如果已经登录则重定向,否则使用默认视图。 就像是: 当然可以相应地更改你的网址: