将access_token POST到资源时的ContentType:multipart / form-data

时间:2014-01-07 08:15:52

标签: php forms oauth

我需要您的帮助,我正在实施从https://github.com/bshaffer/oauth2-server-php

获取库的OAuth2服务

每件事情都很好,但当我在表单中使用enctype="multipart/form-data"时收到错误The access token provided is invalid

我的表格

<form action="contact.php" method="post" enctype="multipart/form-data" name="contact" id="conact">
  <table>
    <tbody>
      <tr>
        <td>Image</td>
        <td><input type="file" name="image" id="image" value="" /></td>
      </tr>
      <tr>
        <td>Name</td>
        <td><input type="text" name="name" id="name" maxlength="25" value="" /></td>
      </tr>
      <tr>
        <td>Status</td>
        <td><input type="text" name="status" id="status" maxlength="25" value="" /></td>
      </tr>
       <tr>
        <td>Access Token</td>
        <td><input type="text" name="access_token" id="access_token" value="" /></td>
      </tr>
      <tr>
        <td colspan="2"><input type="submit" name="submit" id="submit" value="Submit" /></td>
      </tr>
    </tbody>
  </table>
</form> 

但是当我删除它enctype="multipart/form-data" everthing是工作文件但图像不上传。

我的contact.php有

if (!$server->verifyResourceRequest(OAuth2\Request::createFromGlobals())) {
        $response[]=$server->getResponse()->send();
        die;
}
 This Code is Checking Valid and Invalid Access Token  

请帮助。 感谢

2 个答案:

答案 0 :(得分:0)

我还没有得到这些答案,所以我使用替代方法,我在行动中传递了访问令牌,就像这样

<form action="contact.php?access_token=" method="post" enctype="multipart/form-data" name="contact" id="conact">
  <table>
    <tbody>
      <tr>
        <td>Image</td>
        <td><input type="file" name="image" id="image" value="" /></td>
      </tr>
      <tr>
        <td>Name</td>
        <td><input type="text" name="name" id="name" maxlength="25" value="" /></td>
      </tr>
      <tr>
        <td>Status</td>
        <td><input type="text" name="status" id="status" maxlength="25" value="" /></td>
      </tr>
      <tr>
        <td colspan="2"><input type="submit" name="submit" id="submit" value="Submit" /></td>
      </tr>
    </tbody>
  </table>
</form> 

工作正常。

答案 1 :(得分:0)

通过这样做我也解决了类似的问题

&#13;
&#13;
<form action="contact.php?access_token=MY_TOKEN_HERE" method="post" enctype="multipart/form-data" name="contact" id="conact">
  <table>
    <tbody>
      <tr>
        <td>Image</td>
        <td><input type="file" name="image" id="image" value="" /></td>
      </tr>
      <tr>
        <td>Name</td>
        <td><input type="text" name="name" id="name" maxlength="25" value="" /></td>
      </tr>
      <tr>
        <td>Status</td>
        <td><input type="text" name="status" id="status" maxlength="25" value="" /></td>
      </tr>
      <tr>
        <td colspan="2"><input type="submit" name="submit" id="submit" value="Submit" /></td>
      </tr>
    </tbody>
  </table>
</form> 
&#13;
&#13;
&#13;

您还可以在bsaffers库issue上查看此问题 oauth library

也提到了这一点