反应帐户激活

Posted

技术标签:

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

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

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

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

我目前遇到两个问题:

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

    如何从链接中获取令牌? “/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>
);

【问题讨论】:

【参考方案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 的选项:***.com/questions/31945763/… 是的,我正在使用 webpack-dev-server。通过在 historyApiFallback 中指定重写,我可以让确认 url 转到静态的 confirm.html,但我怎样才能从那里转到 ConfirmPage 组件? 这个问题不需要重写。

以上是关于反应帐户激活的主要内容,如果未能解决你的问题,请参考以下文章

为啥我的 while 循环被激活,但没有其他反应?

office输入产品密钥后没反应了

WPS打开office文件没反应怎么办?

excel office 365一直在启动中,没反应是怎么回事

在solidity合约实例承诺中反应setState

休眠反应在 aws rds 中没有活动的 Vert.x 上下文