具有TOTP密码的POST请求:对预检请求的响应未通过访问控制检查

问题描述 投票:0回答:1

我需要使用TOTP(基于时间的一次性密码)向包含[的数据发出POST请求。我不断从服务器获取以下消息。

================================================ =========

ORIA]从起源'http://localhost:3000

URL

处的XMLHttpRequest的访问已被CORS策略阻止:对预检请求的响应未通过访问控制检查:'Access-Control-Allow-Origin'标头包含一个值'https://topic.name.com'不等于提供的原点。================================================ =========

我正在使用otplib作为库来帮助我生成TOTP。

    设置TOTP为30秒间隔(默认)
  1. T0为0(历元)
  2. 数字是10
  3. HMAC-SHA-512算法
  • 头要求(由服务器指定):

      HTTP基本认证,如RFC2617的第2章所指定
  • Content-Type:'application / json'
  • 到目前为止,这是我的代码。

    import { totp } from 'otplib' import base64 from 'base-64' import axios from 'axios' const request = () => { const URL = 'https://api.topic.name.com/topic/003' const info = { "github_url": "https://github.com/myname/topic", "contact_email": "[email protected]" } const secret = 'nameTopic' const dataBody = JSON.stringify(info) const sharedSecret = info.contact_email+secret totp.options = { digits: 10, algorithm: "sha512", epoch: 0} const newTOTP = totp.generate(sharedSecret); const isValid = totp.check(newTOTP, sharedSecret); console.log(newTOTP, isValid) const userPass = info.contact_email + ":" + newTOTP; const credential = base64.encode(userPass); const config = { headers: { 'Content-Type': 'application/json', "Authorization": "Basic " + credential } }; axios.post(URL, dataBody, config).then((response) => { console.log(response) }, (err) => { console.log(err) }) } export default request

    我真的不明白为什么会有CORS问题,可能是我的标题错误吗? 

    非常感谢您的帮助,感谢您的宝贵时间。

  • javascript post xmlhttprequest axios totp
    1个回答
    0
    投票
    您应该尝试在节点上运行它。将脚本放置在index.js文件中,安装依赖项并运行node index.js

    您设法解决挑战了吗?即使遵循相同的代码库,我仍然会得到Access denied: Invalid token, wrong code

    © www.soinside.com 2019 - 2024. All rights reserved.