您好我正在尝试从网页将用户登录到 Box.com。我通过一个简单的 HTML 表单提交完成了第一部分:
<form action="https://www.box.com/api/oauth2/authorize" type="POST" enctype="application/x-www-form-urlencoded">
<input type="text" name="response_type" value="code">
<input type="text" name="client_id" value="[REMOVED]">
<input type="text" name="state" value="vexhax97td8xf_SomeTemporaryValueForTesting">
<input type="submit">
</form>
这很好用,我使用 javascript 从查询参数中获取授权代码。然后我尝试同样的事情来获取访问代码(身份验证代码由页面加载时的 javascript 设置):
<form action="https://app.box.com/api/oauth2/token" type="POST" enctype="application/x-www-form-urlencoded">
<input type="text" name="grant_type" value="authorization_code">
<input id="auth-code" type="text" name="code" value="">
<input type="text" name="client_id" value="[REMOVED]">
<input type="text" name="client_secret" value="[REMOVED]">
<input type="submit">
</form>
但我收到“无效的 grant_type 参数或缺少参数”错误。另外,无论如何显示响应 json 都不是一个好的用户体验。我已经尝试过了,没有enctype="application/x-www-form-urlencoded"
出现同样的错误。
Box 教程使用 curl 来完成,这显然不是网页上的选项。如何在不出现“无效...”错误的情况下获取访问令牌,有没有办法通过幕后的 javascript 做到这一点?