【问题标题】:React account activation反应帐户激活
【发布时间】:2017-10-03 22:14:27
【问题描述】:

我正在尝试弄清楚如何获取 React 的帐户激活链接。 Rails API 发送账户激活 URL 如下:

http://localhost:8080/users/confirm?token=480a476e6be366068dff

我想设置一个 React 操作,将该令牌发布到 API,然后组件将呈现“帐户已激活”消息。

我目前遇到两个问题:

  1. 如何在浏览器中直接打开上述链接?我收到“无法获取 /users/confirm”错误消息。我读到browserHistory应该可以解决直接调用React URL的问题,但我不确定如何实现它。

  2. 如何从链接中获取令牌? “/users/confirm/:token”是正确的方法吗?

routes.jsx:

export default (
  <Route history={browserHistory} path="/" component={App}>
    <IndexRoute component={HomePage} />
    <Route path="/users/login" component={LogInPage} />
    <Route path="/users/register" component={RegisterPage} />
    <Route path="/users/confirm/:token" component={ConfirmPage} />
  </Route>
);

【问题讨论】:

    标签: reactjs


    【解决方案1】:

    路由器 你有帐户吗?在 Material UI ReactJS 中

    handleClickSignIn() {
            this.props.history.push("/Register");
        } 
        return(<div><p style={signstyle} > Don't have an account yet?
                < a href onClick={this.handleClickSignIn.bind(this)} >Join Register</a>
                                        </p></div>)
    

    【讨论】:

      【解决方案2】:

      无论您使用什么网络服务器来提供响应代码,都需要处理该路由。因此,如果您正在渲染使用 rails 引导反应代码的 html 页面,请将路由添加到 routes.rb,并让它渲染加载您的包的文件。

      现在为了让令牌作为这样的参数出现:

      <Route path="/users/confirm/:token" component={ConfirmPage} />
      

      您需要以相同的方式将 rails api 直接连接到它:

      http://localhost:8080/users/confirm/480a476e6be366068dff
      

      如果需要使用查询字符串,在react中更新路由:

      <Route path="/users/confirm" component={ConfirmPage} />
      

      然后在确认页面中,从查询字符串本身中获取令牌。您可以通过几种方式做到这一点。我还没有尝试过,但我相信反应路由器会为你解析它。在 ConfirmPage 中,通过以下方式访问它:

      this.props.location.query.token
      

      【讨论】:

      • 谢谢,但我不知道如何创建一个引导反应和导轨的 html 文件。我的 Rails 服务器处于仅 API 模式,它不呈现任何视图,只呈现 JSON。您能提供更多详细信息吗?
      • 你如何为前端服务? Webpack 开发服务器?它有一个处理任意 URL 的选项:stackoverflow.com/questions/31945763/…
      • 是的,我正在使用 webpack-dev-server。通过在 historyApiFallback 中指定重写,我可以让确认 url 转到静态的 confirm.html,但我怎样才能从那里转到 ConfirmPage 组件?
      • 这个问题不需要重写。
      猜你喜欢
      • 2016-03-11
      • 2011-05-16
      • 2016-08-31
      • 1970-01-01
      • 1970-01-01
      • 2014-07-04
      • 1970-01-01
      • 1970-01-01
      • 2013-01-12
      相关资源
      最近更新 更多