首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >他们是否将Drupal-8和ionic4集成在一起进行用户注册和登录?

他们是否将Drupal-8和ionic4集成在一起进行用户注册和登录?
EN

Stack Overflow用户
提问于 2019-08-24 11:55:03
回答 2查看 177关注 0票数 2

我是Drupal 8的新手,我正在为我的公司做一个项目,请帮助解决这个问题。

我们已经从离子应用程序注册,我们希望发送数据到Drupal 8站点MySQL DB。

问题是,当我们在Drupal 8中使用多个注册模块为表单中的每个字段创建注册表单时,数据库中有一个单独的表,例如,username字段有自己的表。

我们如何将应用程序中的数据插入Drupal,以便用户可以从应用程序或网站注册?

我们在Drupal 8中使用多个注册模块。

我尝试过使用应用程序内浏览器(https://ionicframework.com/docs/native/in-app-browser)将表单嵌入到我们的应用程序中,但是它显示了带有页眉和页脚的整个页面,这是我们不想要的。

我还尝试将数据作为JSON文件发送,并使用PHP和MySQL命令将数据插入表中,但这是一项非常长且困难的任务。

代码语言:javascript
复制
let headers: any = new HttpHeaders({ 'Content-Type': 'application/json' }),
       options: any = { "key": "create",
      'id': obj.id,
       'fullName': obj.fullName,
       'email': obj.email,
       'idNumber': obj.idNumber,
       'gender': obj.gender,
       'age': obj.age,
       'phone': obj.phone,
       'status': obj.status,
       'qualifications': obj.qualifications,
       'skills': obj.skills[0],
       'city': obj.city,
       'terms': obj.terms,
     },

this.http.post(url2, JSON.stringify(options), headers)
      .subscribe((data: any) => {
        console.log('successfully added');
      },
        (error: any) => {
          console.log('Something went wrong!', error);
        });

以及插入数据

代码语言:javascript
复制
// Retrieve the posted data
   $json    =  file_get_contents('php://input');
   $obj     =  json_decode($json);
   $key     =  strip_tags($obj->key);

   switch($key)
   {
     case "createTest":
  $field_mdynt_alskn_target_id = filter_var($obj->field_mdynt_alskn_target_id, 
  FILTER_SANITIZE_STRING, FILTER_FLAG_ENCODE_LOW);
  $field_username_value   = filter_var($obj->field_altk_al_value, 
  FILTER_SANITIZE_STRING, FILTER_FLAG_ENCODE_LOW);

           try {
            $sql    = "INSERT INTO user_name(field_username_value) VALUES(:field_username_value)";
            $stmt   = $pdo->prepare($sql);
            $stmt->bindParam(':field_mdynt_alskn_target_id', $field_mdynt_alskn_target_id, PDO::PARAM_STR);     
$stmt->execute();

            echo json_encode(array('message' => 'Congratulations the record ' . $name . ' was added to the database'));
         }
         // Catch any errors in running the prepared statement
         catch(PDOException $e)
         {
            echo $e->getMessage();
         }

      break;

这里的问题是,每个字段在数据库中都有自己的表,例如,username字段有表user_name,对于表单中的所有字段,我要对所有字段执行相同的操作,我认为这不是正确的方法。

是否有一种更快和有效的方法,将数据从我们的离子4应用注册表格到我们的Drupal网站的数据库。

谢谢,以防万一,还需要进一步澄清。

只是为了澄清:

我们安装了"Drupal/admin/people/roles"“多重注册页面模块”,然后使用创建不同的用户,如下所示

然后使用"Drupal/admin/config/people/accounts/fields"为每个角色添加字段,如下图所示

这导致Drupal在数据库中创建每个字段及其表。

EN

回答 2

Stack Overflow用户

发布于 2019-08-24 15:19:33

首先,修复数据库体系结构,为每个表单字段创建一个表并不是高效和可伸缩的。

我怀疑是否有任何Drupal扩展能够做到这一点,如果是这样的话,它应该被踢出drupal宇宙。

从这张图片中可以看到我们为用户提供了多少个表。

票数 0
EN

Stack Overflow用户

发布于 2019-08-25 07:21:40

我将考虑的选项是制作一个页面模板,该模板有一个可剥离的设计,您可以按照最初尝试的方式嵌入该模板。

如果您不知道如何让Drupal为单个页面提供自定义模板,那么我会编写一些JavaScript或CSS来删除/隐藏我在应用程序中嵌入时不想看到的所有页面组件。

您可以添加一个查询字符串参数,或者在窗体上创建第二个页面,以便您可以检测到它何时需要更改设计。

正如您已经发现的,尝试手动执行是一项复杂的任务,除非我已经是该领域的专家,否则我不想承担这个任务。

我不知道你是否考虑过完整的用户体验?用户注册后会发生什么?您将结束一个完整的表单,但应用程序将不知道它已注册,因为这将发生在服务器上。我认为JWT是开始研究的方向,但我没有一个简单的解决方案。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57637713

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档