首页 > 解决方案 > 收到来自 Stripe 的带有授权码的响应后出现 NavigationDuplicated 错误

问题描述

在客户提交 Standart 帐户的表单后,我收到了 Stripe 的回复,其中包含授权代码:

http://localhost:8080/authorize?state=s_987654321&code=ac_123456789.

但后来。它向我发送 404 错误,我在控制台中收到此错误:

vue-router.esm.js?8c4f:2051 Uncaught (in promise) NavigationDuplicated {_name: "NavigationDuplicated", name: "NavigationDuplicated", message: "Navigating to current location ("/404") is not allowed", stack: "Error↵    at new NavigationDuplicated (webpack-int…de_modules/regenerator-runtime/runtime.js:271:22)"}

我在我的主要项目中使用 vuejs,并使用 express.js 与条带平台一起工作。这是我的项目文件结构的一个想法:

主文件夹/src/App.vue

MainFolder/serverExpress/server.js

var CLIENT_ID = 'ca_H6tuwGUpXOW6UT3OwvebyEHPa56AVuuZ';
var API_KEY = 'sk_test_51GPxpRGLlS3xAdXuysR6LHodvo98uj7ZAkpdoPyzZNpKVdN5Dm1SOEe7r1JdfKQ1DY4KcYqZPRre5FpO0sAbgay900DPUg9EFH';

var TOKEN_URI = 'https://connect.stripe.com/oauth/token';
var AUTHORIZE_URI = 'https://connect.stripe.com/oauth/authorize';

var qs = require('querystring');
var request = require('request');
var express = require('express');


var app = express();


app.get('/authorize', function(req, res) {

    var code = req.query.code;


    request.post({
      url: TOKEN_URI,
      form: {
        grant_type: 'authorization_code',
        client_id: CLIENT_ID,
        code: code,
        client_secret: API_KEY
      }
    }, function(err, r, body) {

      var accessToken = JSON.parse(body).access_token;


      res.send({ 'Your Token': accessToken });
      console.log(body);

    });

});

任何人都可以告诉我发生了什么,我是 express.js 的新手,并且没有太多关于它与条纹一起使用的信息。谢谢!

标签: node.jsexpressvue.jsstripe-payments

解决方案


错误本身是 Vue 特有的——我对 Vue 不是很熟悉——但通常你希望将用户重定向为你的/authorize路由的一部分,将它们发送回你的应用程序,而不是返回一些内容,因为它们'之前已被重定向离开您的应用程序。


推荐阅读