facebook - 用 facebook 登录替换 drupal 注册和登录

标签 facebook drupal

我正在尝试为我的 d6 站点开发一个自定义模块,该模块允许用户注册和登录到我的站点,就像普通用户使用现有的 drupal 登录和注册系统一样。

我看了fbconnect module (尚未更新为使用最新的 facebook php sdk [版本 3])和 drupal for facebook如果存在具有相同电子邮件的drupal用户,它将facebook登录映射到现有用户ID - 这不是我想要的。

我要做什么:

  • 用户来到我的网站。点击使用 facebook 登录。
  • 他会看到 fb 登录弹出窗口。用户授予权限。
  • 此时我将他注册到网站,然后登录。
  • 他现在可以访问为经过身份验证的用户设置的所有权限以创建帖子等。
  • 他登出。再次回来并登录,这一次他第一次创建的所有内容都可供他使用,就像普通的经过身份验证的用户一样。

  • 我无法可视化模块结构。
    我将如何实现这一目标?我知道我需要使用提到的服务器端身份验证here .

    我精通创建 Drupal 模块,只是在思考它的架构时遇到了麻烦。如果有人对此有一些经验,我将不胜感激。如果有人提供详细的步骤,我会站在世界之巅。

    最佳答案

    我使用他们的 Facebook ID 自动注册用户,没有通过,所以他们只有在 facebook 批准他们并将他们识别为 Facebook 用户时才能登录。

    我正在为 Facebook 使用 PHP SDK。还请记住,您需要一个签名的请求,并且您尝试注册的用户必须在尝试注册之前接受您的 APP(以获取他/她的用户 ID)。

    您可以使用注册插件或在 Facebook 页面的选项卡中获取签名请求...

    这是我的代码,它没有经过全面测试,但它可以工作,并且可能会帮助你找到一种方法。

    // Registro automático en Drupal con datos de Facebook
    function fbconex_registro() {
    
    global $facebook;
    global $user;
    
    $SR = $facebook->getSignedRequest();
    
    if ($SR['registration']) {
    
        $datos = $SR['registration'];
        $usuario_nuevo['status'] = 1;
        $usuario_nuevo['mail'] = $datos['email'];
        $usuario_nuevo['name'] = 'fb-' . $facebook->getUser();
    
        // Comprobar que el usuario no existe
        $usuario_nuevo = user_save(null, $usuario_nuevo);
    
        if (!$usuario_nuevo) {
            $html .= 'Se detectaron problemas. No se pudo registrar.';
        };
    } else {
        $html .=
                'Para iniciar sesión o registrarse visite 
      <a href="/concursocial/sesion">mi sesión</a><br/>';
    
        if ($user->uid != 0)
            drupal_goto('user');
    }
    
    if ($usuario_nuevo) {
        $user = $usuario_nuevo;
        drupal_goto('user');
    }
    
    return $html;
    }
    

    关于facebook - 用 facebook 登录替换 drupal 注册和登录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8405438/

    相关文章:

    facebook - 有没有办法确保为我的应用程序生成 Facebook 访问 token ?

    CSS3PIE 在 IE 中不工作

    javascript - 德鲁巴 8 : Theme's css and js files are not being loaded

    drupal - LAMP Drupal 站点的哪些配置文件应保存在源代码管理中?

    android - 获取远程图片导致android中的NetworkOnMainThreadException

    android - 检索 Facebook 好友返回空列表

    ios - 如何更改 IOS6 中 native Facebook 共享的 "via iOS"

    ruby-on-rails - 设计/OmniAuth 覆盖默认回调 url

    php - 为什么 "SHOW TABLES"不工作

    drupal - 啊,在drupal中根本不起作用