Authentication sfFacebookConnectPlugin:身份验证问题

Authentication sfFacebookConnectPlugin:身份验证问题,authentication,symfony1,facebook,symfony-1.4,Authentication,Symfony1,Facebook,Symfony 1.4,我试着通过在symfony主页上的操作来运行 一切似乎都配置得很好。但是当我尝试使用sfFacebookConnectAuth/sign登录时。 我收到表单错误“用户名和/或密码无效” 我甚至不知道从哪里开始调试 第一步可能是在Facebook端找到正确的应用程序设置(例如,Post Authorization回调URL、Connect URL或Canvas回调URL) 我将symfony 1.4.5原则与sfGuardDoctrinePlugin(在带有子域的实时主机上)结合使用 谢谢您的帮助

我试着通过在symfony主页上的操作来运行

一切似乎都配置得很好。但是当我尝试使用sfFacebookConnectAuth/sign登录时。 我收到表单错误“用户名和/或密码无效”

我甚至不知道从哪里开始调试

第一步可能是在Facebook端找到正确的应用程序设置(例如,Post Authorization回调URL、Connect URL或Canvas回调URL)

我将symfony 1.4.5原则与sfGuardDoctrinePlugin(在带有子域的实时主机上)结合使用


谢谢您的帮助。

插件页面上说,该插件仅在Symfony 1.2之前受支持/稳定。直接向插件作者发送有关1.4兼容性的电子邮件可能有意义。

我发现该页面:现在它可以工作了,在阅读教程后,我改变了三件事:

  • modules/sfFacebookConnectAuth/config/security.yml:使用“false”而不是“off”
  • 我在apps/frontend/config/app.yml中添加了“callback_url”
  • 我在教程中使用了facebook操作

我需要弄清楚到底是什么问题。我需要增强插件的一些功能。例如,将用户数据保存到我的profile类等(现在我保存了一个神秘的用户名,而不是正确的FB用户名。)

我在使用sfFacebookConnectPlugin时遇到一些问题。我试着从中复制这个简单的例子。调用索引页面,我会被重定向到facebook身份验证页面,但在登录后,我不会被重定向回来。我只会登录facebook。我做错了什么

谢谢

这是我的代码:

[/frontend/config/app.yml]

# default values
all:
  facebook:
    api_key: xxx
    api_secret: xxx
    api_id: xxx
    callback_url: 'http://localhost'
    redirect_after_connect: false
    redirect_after_connect_url: ''
    connect_signin_url: 'sfFacebookConnectAuth/signin'
    app_url: '/my-app'
    guard_adapter: ~
    js_framework: none # none, jQuery or prototype.

  # It is highly recommended to use a js framework if you want a correct experience in IE

  sf_guard_plugin:
    profile_class: sfGuardUserProfile
    profile_field_name: user_id
    profile_facebook_uid_name: facebook_uid # WARNING this column must be of type bigint ! 100000398093902 is a valid uid for example !
    profile_email_name: email
    profile_email_hash_name: email_hash

  facebook_connect:
    load_routing:     true
    user_permissions: []


[layout.php]

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en" xmlns:fb="http://www.facebook.com/2008/fbml">
<head>
<?php use_helper('sfFacebookConnect') ?>
<?php include_http_metas() ?>
<?php include_metas() ?>
<?php include_title() ?>
<link rel="shortcut icon" href="/favicon.ico" />
</head>
<body>

<?php echo $sf_content ?>

<?php include_bottom_facebook_connect_script(); ?>

</body>
</html>



[actions.class.php]

<?php

/**
 * facebook actions.
 *
 * @package
 * @subpackage facebook
 * @author     Your name here
 * @version    SVN: $Id: actions.class.php 12479 2008-10-31 10:54:40Z fabien $
 */
class homeActions extends sfActions
{
    /**
     * Executes index action
     *
     * @param sfRequest $request A request object
     */

    public function executeIndex(sfWebRequest $request)
    {
        sfFacebook::requireLogin();
        //get the user object
        $user = $this->getUser();

        // facebook user id
        $this->fb_uid = $user->getCurrentFacebookUid();
        // get or create user based on fb_uid
        $fb_user = sfFacebook::getOrCreateUserByFacebookUid($this->fb_uid);
    }
}



[indexSuccess.php]

<?php if ($sf_user->isFacebookConnected()): ?>

<fb:serverfbml style="width: 740px;">
    <script type="text/fbml">
        <fb:fbml>
            <fb:request-form target="_top" action="[where to redirect after invite]" method="post" type="[name of your app]" content="[text the user will receive]&lt;fb:req-choice url=&quot;http://apps.facebook.com/[your app]/&quot; label=&quot;Accept!&quot;  " image="" invite="true">
                <fb:multi-friend-selector cols="4" actiontext="[some text above the invite form]" />
            </fb:request-form>
        </fb:fbml>
    </script>
</fb:serverfbml>

<?php else: ?>
<p>Ooops?</p>
<br />
<?php endif; ?>
[/frontend/config/app.yml]
#默认值
全部:
脸谱网:
api_密钥:xxx
api_机密:xxx
api_id:xxx
回调url:'http://localhost'
连接后重定向\u:false
在\u连接\u url之后重定向\u:'
连接\登录\ url:'sfFacebookConnectAuth/signin'
应用程序url:“/我的应用程序”
保护适配器:~
js#U框架:无#无、jQuery或prototype。
#如果您想在IE中获得正确的体验,强烈建议您使用js框架
sf_guard_插件:
档案类别:sfGuardUserProfile
配置文件\字段\名称:用户\ id
profile_facebook_uid_name:facebook_uid#警告此列必须为bigint类型!例如,100000398093902是有效的uid!
配置文件\电子邮件\名称:电子邮件
配置文件\u电子邮件\u哈希\u名称:电子邮件\u哈希
facebook_connect:
加载路由:true
用户权限:[]
[layout.php]
[actions.class.php]
哎呀



是的,我认识到了它,它非常令人困惑,但我所说的教程是针对Symfony 1.4的,因此它应该是兼容的。想知道是否有那么少的开发人员使用这个插件(或者有问题):-/可能是因为主页上写着1.2。任何新加入Symfony的人都会从1.4开始,很多人已经在等待2.0了。您的回调URL必须可以从外部访问。Localhost根本不起作用。将代码上载到服务器,并更改回调URL。