使用reactjs的Firebase托管无法处理/重定向第三方身份验证

时间:2018-01-07 16:43:49

标签: reactjs firebase web firebase-hosting

我是reactjs和Firebase网站托管的新手。

我在网上使用Sketchfab OAuth2。所以,我需要提供一个到Sketchfab的重定向链接,例如https://projectname.firebaseapp.com/redirect

但是,我正在使用react-router,无论我发送到哪个页面,网址中都有一个'#',例如https://projectname.firebaseapp.com/#/loginhttps://projectname.firebaseapp.com/#/redirect。这使我无法从Sketchfab获取OAuth令牌,因为我的网址和重定向网址不匹配。

我已请求使用https://projectname.firebaseapp.com/#/redirect作为重定向网址。但是,Sketchfab不支持在重定向网址中使用“#”。

解决此问题的可能方法:

  1. 找到一种方法从我的网址中删除“#”
  2. 利用firebase.json将所有**/redirect/**来源的目的地重写为https://projectname.firebaseapp.com/#/redirect
  3. 对于选项2,我不知道如何在reactjs中执行此操作,因为我只知道如何将目标重写为html文件,例如/index.html

    这是我在网上使用的主题:https://startreact.com/themes/ani-theme/

1 个答案:

答案 0 :(得分:0)

您似乎可能正在使用HashRouter而不是Browser Router。使用HashRouter控制哈希键之后的URI,如果您的静态服务器不支持单页应用程序(例如Github Pages),这将非常有用。我非常确定您可以在Firebase中使用Browser Router,因此在您的路由器组件中,您必须导入正确的路由器:import {BrowserRouter as Router, Route} from 'react-router-dom'