为 2 种身份验证模型设计登录/签出的不同视图 - 用户和管理员

Posted

技术标签:

【中文标题】为 2 种身份验证模型设计登录/签出的不同视图 - 用户和管理员【英文标题】:Different View for Devise sign_in/sign_out for 2 authentication model - User & Admin 【发布时间】:2016-03-15 05:33:29 【问题描述】:

我制作了这个简单的测试应用程序,它有 2 种不同的身份验证模型 - 用户 - 行政 https://github.com/axilaris/admin_user_devise_articles

我想为用户和管理员设计不同的视图布局。我该如何自定义它。

例如:

localhost:3000/users/sign_in

应该不同于

localhost:3000/admins/sign_in

请随时修改我的 github 存储库以获得不同的 sign_in/sign_up 视图。谢谢。

【问题讨论】:

您是否了解如何生成设计视图,然后在 github 上的设计 wiki 中对其进行编辑? github.com/plataformatec/devise#configuring-views 您可能想要覆盖设计默认控制器和视图来实现这一点,然后在您的路由中指定要相应使用的正确控制器。 【参考方案1】:

在应用程序控制器中,我添加了一个名为 after_sign_in_path_for 的方法,该方法检查角色并重定向到所需的视图 这是一个方法

def after_sign_in_path_for(resource)
    if resource.has_role? :admin
      users_path
    else
      root_path
    end
  end

希望对你有帮助

【讨论】:

【参考方案2】:

基本上 Deep 有答案,就在这里:

github.com/plataformatec/devise#configuring-views

这样做:

rails 生成设计:查看用户

设置:

config/initializers/devise.rb 文件中的 config.scoped_views = true。

更新 git repo 以反映此功能。谢谢@Deep

【讨论】:

以上是关于为 2 种身份验证模型设计登录/签出的不同视图 - 用户和管理员的主要内容,如果未能解决你的问题,请参考以下文章

启用 2 因素身份验证时,如何通过 HTTPS 签出私有 github 存储库?

laravel 5.4 中两种不同的身份验证模型

设计用户登录为 CSRF 令牌真实性令牌提供身份验证错误

如果应用程序有多个登录页面,如何使用安全模块(播放框架)

Laravel 4:基于身份验证状态的单个 URI 的两个不同视图页面

根据模型视图ID Yii2将用户登录重定向到不同的页面