B2B 商店通常采用密码保护,这意味着用户需要先登录才能访问该站点。 至少,登录页面必须是可公开访问的,也可以有其他公共页面,例如注册、帮助和支持页面。 除了这些公共页面之外,B2B 站点的其余部分都需要用户进行身份验证才能访问它。 Spartacus 早期登录功能允许您将站点的一个或多个页面设为公开,并将站点的其余部分设置为受密码保护。
Protecting Most Routes
您可以通过提供配置来启用提前登录,例如:
ConfigModule.withConfig({ routing: { protected: true, /* ... */ } })
此配置需要用户登录才能访问任何 CMS 驱动的路由(即任何具有 CmsPageGuard 的路由).
以下路由例外,它们在 default-routing-config.ts 中定义为 public:
login
register
forgot password
reset password
Configuring Public Routes
当全局 protected 配置设置为 true 时,您仍然可以为单个路由覆盖它,并通过为单个路由的配置显式设置 protected: false 来将它们设为公开。 下面是一个例子:
ConfigModule.withConfig({ routing: { protected: true, /* ... */ routes: { contact: { paths: ['contact'], protected: false // make the contact route public }, register: { protected: true // make the register route protected by overriding the `protected: false` configuration in `default-routing-config.ts` } } } })
在上面的示例中,全局配置设置为 protected: true,因此站点上的所有路由都受密码保护,除了那些在 default-routing-config.ts 中默认定义为 public 的路由(换句话说, 登录、注册、忘记密码和重置密码路由)。 现在站点受到保护,您仍然可以将特定路由设为公开,例如“联系我们”页面的路由,在本示例中通过将联系路由设置为 protected: false 将其设为公开。 如前所述,某些路由在 default-routing-config.ts 中被定义为公共路由。 如果您想让这些路由中的任何一个受密码保护,您可以明确覆盖默认设置,如上例中的 register 路由所示。
注意:如果全局受保护配置设置为 false,则忽略单个路由的所有值。 换句话说,当全局受保护配置设置为 false 时,您无法保护单个路由。
Protecting Individual Routes
不建议使用早期登录功能来保护单个路由,因为它只允许您将公共页面列入许可名单。 如果只想保护少量路由,最好使用 CMS 保护组件。