Flux+React.js登录/注册流
Flux + React.js Login/register flow
我正在寻找一些如何在Flux+React.js应用程序中组织最佳登录/注册流程的指南。
我有一个REST API,当注册/登录时,它返回access_token
,我可以在所有其他请求中使用它来获取用户数据。非常基础。
我正在使用ReactRouter,首先想到的是将2个<Route>
用于登录页面和安全页面,例如:
<Route name="app" handler={AppHandler} path="/">
<Route name="auth" handler={AuthHandler}>
<Route name="login" handler={RegisterHandler} path="/register"/>
<Route name="register" handler={LoginHandler} path="/login"/>
</Route>
<Route name="secured" handler={EnsureAuthHandler}>
<Route name="dashboard" handler={Dashboard} />
</Route>
<NotFoundRoute handler={NotFound}/>
</Route>
在EnsureAuthHandler
中,我想检查用户是否有访问令牌,如果"否",我想将他重定向到登录,如果"是",子路由处理程序可以触发加载其数据的操作。
在RegisterHandler
和LoginHandler
内部,我有带有几个字段的表单。我正在使用一个AuthStore
和一个AuthActions
文件。在提交时,我会触发类似AuthActions.register(formData)
的smth,如果提交失败,表单组件会从AuthStore
将错误发送到state
,但如果没有发生错误,我会将用户重定向到Dashboard
。
我觉得有点过于复杂了?例如,使用存储来保存登录/注册的错误。
另一点,如何在一个地方拦截未经授权的API错误,addListener
到Flux调度器?
您可以在应用程序的React.run点使用回调函数:
// Defaults to `Router.HashLocation`
// callback is called whenever the hash changes
Router.run(routes, callback);
// HTML5 History
// callback is called when history events happen
Router.run(routes, Router.HistoryLocation, callback);
// Server rendering
// callback is called once, immediately.
Router.run(routes, '/some/path', callback);
它接收两个参数:
- 根
- 州
根-一个ReactComponent类,其中包含当前匹配项,可以进行渲染。
状态-包含匹配状态的对象。
只需转到http://rackt.github.io/react-router/#Router.run
相关文章:
- Stormpath注册页面上的社交登录
- 注册,登录和分享内容通过LinkedIn和Twitter与服务器端身份验证(如Google+)
- 流星 - 添加带有熨斗的路由后无法提交用户.路由器到登录和注册表单
- 单击按钮时切换html登录/注册表单
- 用于登录/注册Angular应用程序的模式/对话框
- Passportjs防止注册后自动登录
- 快递:我无法获得Passport来验证登录.注册正在进行,但您可以帮助护照登录验证吗
- 使用自制的html表单注册/登录网站
- 登录页面和注册页面我需要将所有内容放在一个页面中
- 禁用 converse.js 的登录和注册选项卡,并将 converse.js 与 openfire 连接
- 我需要在同一页面上同时使用“使用谷歌登录”和“使用谷歌注册”按钮
- 铁路由器登录和注册最佳实践
- expressJS + MongoDB - 登录/注册方法
- 登录失败时导航到注册页面
- 如果登录输入为空,请将用户重新定位到注册页面.JavaScript
- 如何在弹出窗口中单击注册或登录按钮后保持弹出
- 在PHP中,我正在创建注册和登录,但它不是动态的
- 如何使用phonegap+quickblox注册/登录用户
- 输入结束不正常"Javascript注册/登录系统
- 在用户注册/登录时使用Rails + design执行JS代码