magento - 谷歌在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_id和data-login_uri直接放在字符串中,错误仍然存在。
单击后,弹出窗口打开并卡在 URL https://accounts.google.com/gsi/select上,并带有另一个代码 400 响应
如果我登录到我的 Google 帐户,则 Google 头像和名称不会出现在按钮中。
另一个奇怪的事情是,代码工作了一段时间,几周前突然停止了。所以我在想这可能是谷歌 js 文件中的更新?但我不知道......欢迎任何想法。
解决方案
推荐阅读
- python - Streamlit - TypeError:sort_index()得到了一个意外的关键字参数'ignore_index'
- telegraf - 聚合器插件 telgraf
- r - 无法使用闪亮的 R 在传单中显示与 data.frame 连接的 shapefile
- python - 将灰度图像转换为 rgb 会损坏图像
- java - 如何使用流对地图进行深度复制?
- rust - 通过给定条件查找向量中的最大/最小元素
- arrays - 如何解组一个结构体或结构体数组的 JSON 字段?
- python - 验证准确率远低于训练准确率
- ios - 使用 storyboard + struct 构建 XCode UI
- javascript - 未定义的成员