gpt4 book ai didi

javascript - 在路由到 Meteor 主页之前创建登录/注册页面?

转载 作者:行者123 更新时间:2023-11-30 10:04:39 26 4
gpt4 key购买 nike

我有一个使用 layout.html 的全局路由,它指定了 header.html。我想知道如何:

1) 有一个用于登录/注册的主登陆页面,格式正确,没有标题。 (我使用 Atmosphere 中的 UserAccounts,但格式不同,不知道为什么)。 layout.js 中的 header 也无法移除。

2) 登录/登录后,应转到主页。

有人可以建议怎么做吗?

Router.configure({
layoutTemplate: 'layout', //This is where header is specified globally
waitOn: function() {
return [Meteor.subscribe('notifications')]
}
});

Router.route('/', {
name: 'auth'
}); //added this new line

Router.route('/posts', {
name: 'home',
controller: NewPostsController
});

var requireLogin = function() {
if (! Meteor.user()) {
if (Meteor.loggingIn()) {
this.render(this.loadingTemplate);
} else {
this.render('accessDenied');
}
} else {
this.next();
}
}

Router.onBeforeAction('dataNotFound', {only: 'postPage'});
Router.onBeforeAction(requireLogin, {only: 'postSubmit'});


这是全局定义的layout.html。

<template name="layout">
<div class="container">
{{> header}}
{{> errors}}

<div id="main">
{{> yield}}
</div>
</div>
</template>

根据@Chase 的建议更新。- 它适用于路由, header 消失了。- 虽然格式与网站不同。

下面显示了我所拥有的,而它应该看起来像 http://useraccounts.meteor.com/ enter image description here

最佳答案

使用此设置,您无需为每条路线设置带标题的布局。

用户帐户包有一个 Iron Router 插件,以确保用户登录我使用的 (more info)。我还配置了用户帐户包 (more info) 提供的路由,因此我可以直接路由到用户帐户注册页面。

Javascript

Router.configure({
layoutTemplate: 'layout' //main layout with header
});

//Iron router plugin to ensure user is signed in
AccountsTemplates.configureRoute('ensureSignedIn', {
template: 'atTemplate', //template shown if user is not signed in
layoutTemplate: 'atLayout' //template for login, registration, etc
});

//Don't require user to be logged in for these routes
Router.plugin('ensureSignedIn', {
except: ['login', 'register']
});

//Configure route for login
AccountsTemplates.configureRoute('signIn', {
name: 'login',
path: '/login',
template: 'atTemplate',
layoutTemplate: 'atLayout',
redirect: '/'
});

//Configure route for registration
AccountsTemplates.configureRoute('signUp', {
name: 'register',
path: '/register',
template: 'atTemplate',
layoutTemplate: 'atLayout',
redirect: '/'
});

//Home page to show once logged in
Router.route('/', {
name: 'home',
action: function(){
this.render('home');
}
});

HTML

<template name="layout">
<div class="container">
{{> header}}
{{> errors}}

<div id="main">
{{> yield}}
</div>
</div>
</template>

<template name="atLayout">
<div class="at-container">
{{> yield}}
</div>
</template>

<template name="atTemplate">
{{> atForm}}
</template>

关于javascript - 在路由到 Meteor 主页之前创建登录/注册页面?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29802779/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com