0

我还是 CI 和 PyroCMS 的新手,正在尝试使用自定义模块中的Social 模块实现 Facebook 登录,看起来它可以满足我的所有需求,但我显然缺少一些基础知识(我找不到除了简短的自述文件之外的任何文档)!

到目前为止,我已经观看了介绍视频,并成功启用了 Facebook。我可以通过 FB 连接并查看 /social/linked 中列出的 FB,但在我拥有的两个用户组之间存在一些混淆:管理员和用户。

我试图构建的流程是:

  • 用户到达站点并收到一份调查
  • 用户填写调查表,然后被要求注册(我知道这是非常规的)
  • /signup 有一个 facebook 连接按钮,由社交模块提供
  • 用户单击连接按钮,并在 facebook 的弹出窗口中授予权限
  • 用户应该被引导回 /signup,(或者可能被重定向到 /user/registration)并从 facebook 填写一些详细信息(例如电子邮件、姓名)
  • 提交时,应将用户添加到用户表中,作为“用户”组的成员(不是管理员),无需电子邮件激活
  • 发送电子邮件,显示感谢页面
  • 返回网站后,用户应使用 facebook connect 访问他们的现场个人资料。

我已经阅读了一堆关于这个主题的主题,这些主题塑造了这些期望......

这是我所在的位置:

  • 用户到达,填写调查表,点击连接按钮
  • 用户被重定向到主页,该主页显示一个标准页面(不由我的模块处理)。我需要返回/注册!

基于,我尝试设置:

$this->session->set_userdata('redirect_to', '/signup');

我认为是正确的控制器方法(在发送电子邮件之前检查用户是否已登录,然后调用模板构建以显示社交按钮),但无济于事。

(编辑:我现在看到上面的代码与用户模块有关,而不是社交模块..也许我可以移植一些更改......)

我的问题:

  • 我是走在正确的轨道上,还是走错了路?!
  • 如果系统中存在电子邮件地址,我是否认为 FB 帐户将与现有用户匹配?
  • 我只有一个 FB 帐户,我已获得该应用程序的授权,并且我正在以用户身份与之连接 - 这会起作用吗,还是我需要一个单独的 FB 帐户来以用户身份进行测试?

其他注意事项:

  • 我在 Chrome 中测试该站点,在 Firefox 中以管理员身份登录。
  • Facebook 是我的测试用例,我正在考虑最终支持 FB、LinkedIn、google 和 Twitter。

呸!感谢任何反馈,蒂姆

4

2 回答 2

2

我将尝试回答您的一些问题,因为我目前也在尝试使用完全相同的社交模块以及一些插件。

如果系统中存在电子邮件地址,我是否认为 FB 帐户将与现有用户匹配?

是的,你是。我自己检查了它,同时排除了我的 google(gmail 地址)无法连接而我的 hotmail(注册电子邮件)可以连接的事实。您必须在所有社交网站中同步您的电子邮件,更改登录系统(例如允许用户名登录)或在您的帐户设置中手动连接多个电子邮件。

我只有一个 FB 帐户,我已获得该应用程序的授权,并且我正在以用户身份与之连接 - 这会起作用吗,还是我需要一个单独的 FB 帐户来以用户身份进行测试?

我建议你让另一个 FB 帐户的人测试系统(最好保存然后抱歉),但在我的情况下,我使用其他(正常)帐户登录没有任何问题。

我是走在正确的轨道上,还是走错了路?!

这是你的第一个问题,但我会回答这个问题,因为我没有测试是我自己:

Facebook 应用程序有一个名为“站点 URL”的设置。这是将被重定向到的 url。只需将其更改为您希望的页面。您还可以尝试更改 social/controllers/social.php 中的以下行:

第 245 行(重定向:用户在 FB 连接后登录)

redirect($this->input->get('success_url') ? $this->input->get('success_url') : 'social/linked');

第 283 行(重定向:用户必须填写一些附加字段才能完成注册)

redirect('users/register');

祝你好运!

于 2012-12-24T20:57:36.960 回答
2

The intro video shows off the entire extent of the social module. Frontend registrations, frontend user account linking, and backend account linking for the entire system.

If you wish to integrate custom functionality, custom user flows and other stuff as listed in your question then you will need to do a little custom work with the module. Hack it, extend it, send in some pull requests, whatever, but sadly it cannot do "everything to integrate with everywhere ever" out of the box. :-/

于 2012-12-25T14:57:34.000 回答