在React Native中实现Okta并获取:对预检请求的响应不会通过访问

时间:2017-12-01 05:22:21

标签: react-native okta

我正在使用React Native

实现Okta signin小部件

我明白了:

Failed to load https://dev-827074.oktapreview.com/api/v1/sessions/me: 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.

尝试登录后,我得到以下内容:

UnsupportedBrowserError {name: "UNSUPPORTED_BROWSER_ERROR", message: "There was an error sending the request - have you enabled CORS?"}

3 个答案:

答案 0 :(得分:0)

您可能需要在应用的Okta应用的常规设置中将http://localhost:3000/implicit/callback添加到应用的登录重定向URI

Okta Login Redirect URIs

答案 1 :(得分:0)

您编写的API不支持CORS。 CORS或跨源资源共享允许Web应用程序向属于不同域的API提交请求。应在API端启用此设置。

这就是它的工作原理,每当将请求发送到不同的域时,OPTIONS方法就会发送到服务器。服务器响应Web应用程序的可用选项。如果支持动词,浏览器将使用适当的动词或方法发送实际请求(例如,GET或POST)。如果不支持该动词,则会收到上述错误消息。

简而言之,为您的API启用CORS。如果它是Node / Express API,它只是一个简单的cors包,你需要添加到你的项目和使用。

答案 2 :(得分:0)

我们收到了Okta的类似错误。我们要做的是将承载webview的服务器的主机名添加为Trusted Origin。

API - > Trusted Origins - >添加原点

您可以添加多个来源,您可能需要添加http://localhost:3000