如何获得react-stormpath来添加Access-Control-Allow-Origin标头?

时间:2017-01-20 02:34:01

标签: reactjs stormpath

我遇到类似的问题:

401 Error with post request Stormpath Express + React + Node + Gulp

具体来说,当我尝试使用react-stormpath中的LoginForm或RegisterForm时,我得到:

XMLHttpRequest cannot load https://api.stormpath.com/v1/applications/[ID]/oauth/token. Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:3000' is therefore not allowed access. The response had HTTP status code 401.

我已将http://localhost:3000添加到Stormpath控制台中的Authorized Origin URI,但这并没有帮助。我已经使用Chrome查看了该请求,实际上,没有ACAO标题返回。

与上面提到的其他问题不同,我没有做任何自定义的事情。我的登录页面看起来像这样:

import React from 'react';
import { LoginForm } from 'react-stormpath';

export default class Login extends React.Component {
  render() {
    return (
      <LoginForm />
    );
  }
}

我甚至不知道如何调试这个问题,因为我不知道在react-stormpath中发生了什么。

编辑:添加react-stormpath配置:

ReactStormpath.init({
  endpoints: {
    baseUri: 'https://api.stormpath.com/v1/applications/[ID]'
  }
});

1 个答案:

答案 0 :(得分:0)

问题出在ReactStormpath.init。您的React应用无法直接连接到api.stormpath.com,因为这需要使用安全的API密钥。您的baseUri应该是以下之一:

  • 您的Stormpath应用程序的客户端API网址,例如https://foo-bar.apps.stormpath.io。这是一个单独的API域,允许不受信任的客户端(如React)进行连接。 This part文档是一个更好的例子。
  • 您的网络服务器,如http://localhost:3000 - 如果您使用的是express-stormpath(我无法从您的问题中说出来)

免责声明:我在Stormpath工作。