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