0

我在我的React应用程序中有一个登录页面,通过在基于Koa的API服务器上使用passport.js的社交网络OAuth2服务,用户可以选择本地登录或登录。如何从React Route强制执行基于浏览器导航的GET?

最初,我试图通过ajax调用后端,但似乎OAuth2服务器不会允许我这样做,即使使用代理服务器也会给我一个CORS错误,所以我试图只将Link与周围的to属性我的API后端网址社会登录按钮,如下:


 
    ... 
 
    render(
 
    <h4 className="ui dividing header"> 
 
     Sign in with a Social Media Account 
 
    </h4> 
 
    <Link to="/auth/google/signin"> 
 
     <Button 
 
     id="googleSigninButton" 
 
     disabled={authenticating} 
 
     className="google plus" 
 
     > 
 
     <Icon className="google plus" /> 
 
     Google Plus 
 
     </Button> 
 
    </Link> 
 
) 
 
    ...

问题是,当我点击路由器拦截的链接,并试图呈现按钮组件在该路径和集合浏览器的位置(在导航栏),但实际上并没有导致浏览器进行查看该服务器上的资源 - 这导致了我的通用集装箱404正在呈现。我也试图使用一个普通的锚点元素,但是由于上述相同的原因,这个失败。

所以,我需要知道的是我该如何强制React Router忽略某个路径并允许浏览器在资源上执行GET?

回答

0

只需使用a标签重写Link标签。像下面一样

<a href="/auth/google/signin"> ... </a> 
+0

我也试过这个,但它没有工作。在OP中:“我也试图使用普通锚点元素,但是由于上述相同的原因,这失败了。” – Dallas