【发布时间】:2014-09-22 08:39:01
【问题描述】:
我最近一直在尝试使用 JSON 回复。因此,作为一个测试,我创建了一个小服务来验证另一个域上的用户。这是我最初测试的要点:
在域 A 上,我有一个 php 文件,当使用特定的 GET 变量 (URI) 调用该文件时,它将向调用者返回一个 JSON 字符串。我的想法是我发送用户并传递并返回一个带有变量的 json 字符串,该变量表示它是否已成功登录,如果是用户数据,则为错误消息。
然后我在域 B 中创建了一个带有 javascript 和表单的页面。在表单提交时,javascript 使用 XHR (HTMLRequest) 调用域 A 中的页面,检索 JSON 字符串,将其转换为对象,并根据结果声明登录与否。
这行得通。
重新考虑这一点后,我意识到对于某些服务,这可以正常工作,但登录时却不能,因为客户随后会声称在域 B 中的站点'嘿,我已经以用户 C 的身份使用域 A 登录,所以你可以相信我' - 你真的不应该相信客户。
所以我做了一点改动,现在域 B 中的页面提交用户并传递给域 B,域 B(PHP 中的服务器端)使用 file_get_contents 从域 A 获取 JSON 字符串并根据它做出决定用户现在是否登录。
这也有效,并且在我看来要好得多。
但是现在我处于第 3 阶段 - 即使服务器进行身份验证,我仍在发送用户并通过 URI 传递到域 A。我希望将其作为 POST(或 OPTIONS)发送 - 就像不在 URI 中一样- PHP 到 PHP,最好是组合编码字符串 - 例如 MD5('user:'.$user.':pass:'.$pass) 或类似的东西。
创建 MD5 的字符串很容易,但是我如何通过 PHP POST 然后检索 POST 的结果作为字符串在 PHP 中处理?
【问题讨论】:
-
@CBroe 在我的搜索中错过了那个 - 需要测试那些以查看它们是否在我的场景中工作 - 虽然在那个问题中没有被接受的答案(可能是为什么我首先错过了它 - 很好的收获) - +1 引导我找到可能的答案
-
@CBroe 感谢您的链接 - dbau 的回答效果很好 - 再次感谢