+ </div>);
+});
+
+App.page('/reset-password', false, function(context) {
+ if (App.isUserSignedIn()) {
+ App.go('/me');
+ return;
+ }
+
+ App.mount(<div>
+ <PasswordResetForm />
+ </div>);
+});
+
+App.page('/change-password', false, function(context) {
+ if (App.isUserSignedIn()) {
+ App.go('/me');
+ return;
+ }
+
+ var token = qs.parse(context.querystring).token;
+
+ if (token === undefined) {
+ App.go('/');
+ return;
+ }
+
+ App.mount(<div>
+ <ChangePasswordForm token={token} onSuccess={App.go.bind(App, '/signin')}/>
+ </div>);
+});
+
+App.page('/confirm', false, function(context) {
+ var token = qs.parse(context.querystring).token;
+
+ if (token === undefined) {
+ App.go('/');
+ return;
+ }
+
+ Api.Call(
+ 'CONFIRM_EMAIL',
+ {'token': token},
+ function(err, status, data) {
+ if (err) {
+ console.error(err, data);
+ }
+
+ App.go('/me');
+ }