我正试图找出如何让帐户激活链接做出反应。Rails API发送帐户激活URL,如下所示:
http://localhost:8080/users/confirm?token=480a476e6be366068dff
我想设置一个React操作,将令牌发布到API,然后组件将呈现一个“帐户激活”消息。
我目前被困在两个问题上:
>
如何从链接中捕获令牌?“/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>
);
无论您使用什么Web服务器来提供响应代码,都需要处理该路由。因此,如果您要渲染的html页面使用rails引导响应代码,请将路由添加到routes.rb,并让它渲染加载捆绑包的文件。
现在,为了使令牌成为如下参数:
<Route path="/users/confirm/:token" component={ConfirmPage} />
您需要以相同的方式将rails api直接连接到它:
http://localhost:8080/users/confirm/480a476e6be366068dff
如果您需要使用查询字符串,请在响应中更新路由:
<Route path="/users/confirm" component={ConfirmPage} />
然后在确认页面中,从查询字符串本身获取令牌。你可以用几种方法来做到这一点。我还没试过,但我相信react路由器能帮你解析。在ConfirmPage中,通过以下方式访问它:
this.props.location.query.token
路由器你有一个帐户吗?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>)