实际上我正在研究Steam交易报价功能,我遇到了问题。我已下载Steam类库并在Codeigniter中实现它。我正在按照https://github.com/halipso/php-steam-tradeoffers#setupsessionid-cookies的设置指南进行操作。实际上我不知道会话ID和cookie:
String json_data = stringBuilder.toString().trim();
JSONObject object = new JSONObject(json_data);
JSONObject object1 = new JSONObject("Next");
JSONArray Jarray = object1.getJSONArray("Days");
for (int i = 0; i < Jarray.length(); i++)
{
JSONObject Jasonobject = Jarray.getJSONObject(i);
dbHelper.putStationsInformation((Jasonobject),sqLiteDatabase);
}
dbHelper.close();
$steam->setup('sessionID', 'cookies');
和sessionID
会是什么?
我已经读过它,但没有得到任何解决方案。如何在我的代码中获取并实现它?
答案 0 :(得分:3)
如果这是在Laravel上,您可以发送_token
,并由他们发送csrf_field
。
在CI中你可以这样做。 (csrf
生成唯一会话ID)
路径 - application/config/config.php
$config['csrf_protection'] = TRUE;
在“登录”表单中,您可以添加此页面或在页面初始化中添加此
$csrf = array(
'name' => $this->security->get_csrf_token_name(),
'hash' => $this->security->get_csrf_hash()
);
<input type="hidden" name="<?=$csrf['name'];?>" value="<?=$csrf['hash'];?>" />
因此,在保存时,您可以将其添加到会话中。 BTW此令牌也可用于cookie。
阅读此Cross-site request forgery (CSRF)
标记可以在每次提交时重新生成(默认),也可以在CSRF cookie的整个生命周期内保持相同。标记的默认重新生成提供更严格的安全性,但可能导致可用性问题,因为其他标记变得无效(后退/前进导航,多个选项卡/窗口,异步操作等)。您可以通过编辑以下配置参数
来更改此行为源代码签名文档
最好选择false
,(由于此令牌可能会在每次提交时重新生成(默认))
$config['csrf_regenerate'] = FALSE;
答案 1 :(得分:2)
会话ID是Steam的UUID,对应于我们的Steam个人资料。 这些cookie可以让您进行身份验证。
以下是如何获取sessionID和Cookie的示例: https://github.com/SzymonLisowiec/php-steamlogin(不是我的回购,归功于SzymonLisowiec)
答案 2 :(得分:2)
首先,doc上的文档说您只需要一个API KEY即可将请求和呼叫发送到端点,因为您正在使用的类库已帮助您进入您的帐户并获取API KEY自己。
所以通过检查班级 SteamTrade 会解释设置(sessionId,cookies):
注意:使用此格式完成的所有调用仅在不提供API密钥时才需要SessionID和Cookie。
http://api.steampowered.com/interface-name/method-name/version/?key=apikey&format=format。
的截图:强>
显示如何使用firefox检查器cookie选项卡获取sessionid和cookie