首页 > 解决方案 > 谷歌在magento 1上一键登录

问题描述

我正在尝试在 Magento 1 项目上实现 google 一键式登录,但即使在单击按钮之前,控制台上也会出现一些错误:

“加载资源失败:服务器响应状态为 400 ()”和“[GSI_LOGGER]:参数 client_id 设置不正确。”

按钮请求返回 400 代码。

我在另一个项目(使用 Laravel)上尝试了完全相同的代码,它运行良好。

这是xml:

    <customer_account_login>
    <reference name="head">
        <block type="core/text" name="google.oauth2">
            <action method="setText">
                <text>
                <![CDATA[<script src="https://accounts.google.com/gsi/client" async defer></script>]]>
                </text>
            </action>
        </block>
    </reference>
    <reference name="customer_form_login" >
        <block type="pentagrama_googleoauth2/button" name="googleoauth2.button" template="pentagrama/googleoauth2/button.phtml" />
    </reference>
</customer_account_login>

和 phtml 块:

    <?php 
$_helper = $this->helper('pentagrama_googleoauth2');
$request = Mage::app()->getFrontController()->getRequest();
$moduleName = $request->getModuleName();
?>
<?php if($_helper->isGoogleOAuthEnabled()):?>
    <div id="g_id_onload"
        data-client_id="<?php echo Mage::getStoreConfig('pentagrama_googleoauth2/settings/clientid')?>"
        data-login_uri="<?php echo Mage::getUrl('googleoauth2/', ["page" => $moduleName]); ?>"
        data-auto_prompt="false"
        style="max-width: 270px;"
        >            
        </div>
        <div class="g_id_signin"
            data-type="standard"
            data-size="large"
            data-theme="outline"
            data-text="sign_in_with"
            data-shape="rectangular"
            data-logo_alignment="right"
            data-width="247"
            style="max-width: 270px; margin-top: 10px;">
        </div>
<?php endif;?>

PHP Magento 变量加载正常。即使我将data-client_iddata-login_uri直接放在字符串中,错误仍然存​​在。

单击后,弹出窗口打开并卡在 URL https://accounts.google.com/gsi/select上,并带有另一个代码 400 响应

如果我登录到我的 Google 帐户,则 Google 头像和名称不会出现在按钮中。

另一个奇怪的事情是,代码工作了一段时间,几周前突然停止了。所以我在想这可能是谷歌 js 文件中的更新?但我不知道......欢迎任何想法。

标签: magentogoogle-signin

解决方案


推荐阅读