实际上我正在研究Steam交易提供功能,我遇到了问题。我已下载Steam类库并在Codeigniter中实现它。我正在按照https://github.com/halipso/php-steam-tradeoffers#setupsessionid-cookies的设置指南进行操作。实际上我不知道会话ID和cookie:
$steam->setup('sessionID', 'cookies');
什么是sessionID
和cookies
?
我已经读过它,但没有得到任何解决方案。如何在我的代码中获取并实现它?
好吧,如果这是在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的整个生命周期内保持相同。标记的默认重新生成提供更严格的安全性,但可能导致可用性问题,因为其他标记变得无效(后退/前进导航,多个选项卡/窗口,异步操作等)。您可以通过编辑以下配置参数来更改此行为
源Codeigniter文档
它更好地设置这个false
,(由于这个令牌可能会在每次提交时重新生成(默认))
$config['csrf_regenerate'] = FALSE;
会话ID是Steam的UUID,对应于我们的Steam配置文件。 Cookie可以让您进行身份验证。
以下是如何获取sessionID和cookie的示例:https://github.com/SzymonLisowiec/php-steamlogin(不是我的回购,信用SzymonLisowiec)
首先,doc上的文档说您只需要一个API KEY就可以将请求和调用发送到端点,因为您正在使用的类库已经帮助您进入您的帐户并自己获取API KEY。 所以通过检查类SteamTrade将解释setup(sessionId,cookies):
注意:使用此格式完成的所有调用仅在不提供API KEY时才需要SessionID和Cookies。
http://api.steampowered.com/interface-name/method-name/version/?key=apikey&format=format。 截图: 展示如何使用firefox检查器cookie选项卡获取sessionid和cookie