【发布时间】:2015-10-10 17:37:10
【问题描述】:
我真的有一个大问题,我创建了一个登录 API,但我遇到了一个问题,当我从 URL 访问我的网站时,它给了我代码:
{
"status": 200,
"user_data": {
"username": "",
"email": "",
"first_name": "",
"last_name": "",
"gender": "",
"avatar": "",
"cover": ""
}
}
这意味着我已经成功接收到数据,但是当我试图通过 file_get_contents() 获取数据时;它不起作用,并开始从发件人服务器给我 php 错误:
{
"errors": {
"error_id": 2,
"error": "User not logged in"
}
}
这意味着用户没有登录,但是当我直接访问URL时我已经登录了,
问题是我如何生成 JSON 数据以发送它并从另一个服务器或域(如 Facebook 图形或 soundcloud API)接收它,它们都在使用 file_get_contents(); p>
【问题讨论】:
-
如果你使用 curl 你可以处理一个正常的会话,否则我建议你添加一个
login via API函数。第一步使用帖子(用户名和密码)登录您的 API,成功后 API 应该返回一个令牌。然后,您必须将令牌放在您发出的每个请求上(以识别用户)。令牌应该有时间存在。 -
@swidmann 感谢您的回答,我了解您,但是令牌如何工作?我应该把它存放在哪里?从另一台服务器读取它?
-
那么您应该将令牌从您的 API 存储在数据库中,您可以在其中使用 API 登录。注意:这只是一种方法,可能有一些更好的方法,但我认为它适用于您的情况,请记住令牌不应永远有效
-
嗯,但是从他们那里接收数据怎么样?这就像“从 api_tokens where token = 'XXX' 中选择 user_id; 然后获取数据然后将其解码为 json?它会工作吗?
-
是的类似的东西,如果你总是获取 api_token 你知道它是哪个用户,如果用户在数据库中并且令牌仍然有效,你可以提供用户请求的其他信息.顺便说一句,如果它是敏感数据,我总是更喜欢具有真实会话和后身份验证的“卷曲”方式
标签: php json server file-get-contents