反应帐户激活
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 组件? 这个问题不需要重写。以上是关于反应帐户激活的主要内容,如果未能解决你的问题,请参考以下文章