Magento 2 REST API 调用以获取登录的客户 ID

2024-01-08

我想从 Magento 外部(但在同一域上)进行 REST 调用以获取当前登录的客户 ID。我不希望他们必须再次登录或提供密码,我只需要获取他们的 ID,以便我可以根据他们的 ID 将他们重定向到某个位置。

我在 URL 中看到这个端点:

http://.../rest/V1/customers/me

但是当我 cURL 该 URL 时,我得到:

Consumer is not authorized to access %resources

即使它是匿名的并且基于会话,我是否仍然需要获取令牌来访问它?如果是这样,这个 PHP 调用是什么样的?

我只需要证明他们已登录并获取他们的 ID。


考虑到您将 PHPSESSID 与请求一起发送,这应该可行。正如您所说,您正在使用 cURL,但情况可能并非如此。

您可以通过对 API 进行 ajax 调用来轻松实现这一点,类似于以下内容:

jQuery.ajax({
    url: 'http://dev.magento2.com/rest/V1/customers/me',
    type: 'get',
    error: function() {
        alert('User not Logged In');
    },
    success: function() {
        alert('User logged in');
    }
});

如果您需要将请求保留在服务器端,那么您应该将 PHPSESSID 添加到您的请求中:

$ch = curl_init('http://dev.magento2.com/rest/V1/customers/me');
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
    'Content-Type: application/json'
));
curl_setopt($ch, CURLOPT_COOKIE, 'PHPSESSID=' . $_COOKIE['PHPSESSID']);
curl_setopt($ch, CURLOPT_TIMEOUT, 5);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);

//execute post
$result = curl_exec($ch);

//close connection
curl_close($ch);

$json = json_decode($result);

if (isset($json->id)) {
    echo 'User logged in';
} else {
    echo 'User not logged in';
}

(cURL 请求的来源:https://community.magento.com/t5/Programming-Questions/REST-API-call-to-get-logged-in-customer-ID/m-p/62092#M1813 https://community.magento.com/t5/Programming-Questions/REST-API-call-to-get-logged-in-customer-ID/m-p/62092#M1813)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Magento 2 REST API 调用以获取登录的客户 ID 的相关文章

随机推荐

  • R 中的天气数据抓取和提取 [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我正在开展一个研究项目 并被分配在 R 中进行一些数据抓取和编写代码 以帮助从 wunderground com 等网站提取特定邮政编
  • JPA/Hibernate 删除实体有时不起作用

    我有以下代码 通常运行良好 public void delete T object EntityManager em getPersistence createEntityManager EntityTransaction et em ge
  • 收到通知后应用程序崩溃

    我正在尝试设置一个推送通知系统 为此 我将 Firebase Cloud Messaging 与 Pusher 结合使用 我跟着 以便实施它 设置 FCM 时 我能够从 FCM 的仪表板发送通知 然后 当我设置 Pusher 时 收到通知后
  • 为什么直接比较时tensorflow的精度比keras差?

    我使用相同的参数和相同的数据集 MNIST 对 TensorFlow 和 Keras 进行了直接比较 奇怪的是 Keras 在 10 个 epoch 内实现了 96 的性能 而 TensorFlow 在 10 个 epoch 内实现了约 7
  • Vue.js:如果语句为 true,则设置检查复选框

    我的旧车把视图中有以下复选框 div class form group div
  • 如何在 Quickblox IOS 中更新已发送的消息

    如何更新服务器中发送的 QBChatMessage 例如消息发送 传递后 如何更新其文本或自定义参数 还有哪些参数一旦发送和交付后就无法更改或更新 这是一个链接到片段 http quickblox com developers Androi
  • 如何在 C 中声明和初始化 4 维数组

    我对编程还比较陌生 我需要输入一个 4 维数组 但我几乎无法理解它 那么 让我们从一个简单的 3 维数组开始 每个数组有 2 个元素 如下所示 int arr 2 2 2 1 2 3 4 redline on redline on 5 6
  • UIActionSheet 不响应触摸

    我有一个 UIActionSheet 设置如下 void trash id sender UIActionSheet sheet UIActionSheet alloc initWithTitle Delete delegate self
  • Windows 上的 PHP 与 XAMPP 运行速度慢 100 倍

    PHP 在我的 Windows 桌面上运行速度非常慢 以至于 phpMyAdmin 需要几分钟才能打开数据库 下面是运行一个简单的 PHP 测试程序的时间比较 运行 XAMPP 的 Windows 8 1 计算机 3597 ms iPage
  • 当我在 React 应用程序上执行 npm start 时,不断收到“?某些东西已经在端口 3000 上运行”

    当我启动反应服务器时 当我的端口 3000 上绝对没有任何东西在运行时 我的终端中不断收到 端口 3000 上已经有东西在运行 消息 我试图解决的问题 重新启动 macOS 在 Chrome 浏览器上检查我的 http localhost
  • Canvas getImageData 在某些移动设备上返回不正确的数据

    我正在开发一个画布视频播放器 具有一些基于视频帧的特殊功能 为了克服视频 HTML5 标签中不可靠的计时问题 我们使用的视频在每个帧中嵌入了一个条形码 指示当前帧编号 使用画布 getImageData 方法 我可以抓取像素并读取条形码以获
  • EL表达式中的字符比较[重复]

    这个问题在这里已经有答案了 我想做这样的事情
  • java.sql.SQLException:在连接缓存中发现无效或过时的连接

    我使用 spring 框架 3 2 和 hibernate 4 在本地服务器 apache tomcat v7 0 上长时间空闲后发送请求时出现上述异常 并且数据库位于远程服务器上 经过几个小时的搜索 我发现问题出在连接池上 我尝试了连接池
  • Google 书签导出日期格式?

    我一直致力于从谷歌书签生成的导出文件中解析出书签 该文件包含以下日期属性 ADD DATE 1231721701079000 ADD DATE 1227217588219000 这些不是标准的 Unix 风格时间戳 有人能在这里指出正确的方
  • 如何在代码后面找到带有密钥的资源? [毛伊岛]

    如何在代码后面找到带有密钥的资源 也相当于 DynamicResource StaticResource 标记扩展 在 WPF 中 解决方案是 Style Style FindResource MyStyleKey 如何在 MAUI 中执行
  • 在intellij中获取git diff中的所有文件

    有没有一种快速方法可以打开 intellij 中两次提交之间存在差异的所有文件 我正在查看 gitlab 中的差异 我认为在那里进行编辑会更容易 但可以说我想要 IDE 的好处 我认为这是您可以拥有的最接近的解决方案 Open 版本控制工具
  • Visual Basic 的变量参数列表?

    假设我有一个 DLL 它导出带有可变参数列表的函数 如下所示 int myfunc int arg1 这里 是未定义数量的附加参数 是否可以从 Visual Basic 应用程序中调用此类函数 或者 VB 是否锁定为具有固定参数的函数 我只
  • 将所有子级获取到一个列表 - 递归 C#

    C NET 4 5 NET 4 5实体框架5 我在实体框架中有一个类 如下所示 public class Location public long ID get set public long ParentID get set public
  • 允许用户从表中选择

    cis605 确实存在 emp 表 我想为用户分配权限 对我做错了什么有什么想法吗 SQL gt grant select on emp to user Grant succeeded SQL gt connect user Enter p
  • Magento 2 REST API 调用以获取登录的客户 ID

    我想从 Magento 外部 但在同一域上 进行 REST 调用以获取当前登录的客户 ID 我不希望他们必须再次登录或提供密码 我只需要获取他们的 ID 以便我可以根据他们的 ID 将他们重定向到某个位置 我在 URL 中看到这个端点 ht