我正在开发一个Android应用程序,我正在使用Ruby on Rails开发服务器。我只希望管理员能够访问应用程序数据库。也就是说,服务器主页应包含“登录”(管理员登录...只有2-3人将成为管理员)链接但不应包含“注册”链接以防止未经授权的用户注册。基本上,我不希望任何随机的人登录管理页面。我该怎么做呢?
或者,我可以做的是在主页上保留“在这里注册”链接(用“仅限管理员”这一行)并允许人们注册但拒绝用户登录说“抱歉,你不是被认为是管理员“>我相信我可以通过将管理员ID硬编码到我的代码中并在每次有人登录时检查它们来做到这一点......但这看起来很蹩脚
或者我可以完全删除注册链接(仅保留登录链接)并从运行服务器的本地计算机上从终端本身创建管理员帐户,从而防止任何随机用户注册。再次,这看起来不方便..
这是我第一次参与网页开发,对此我知之甚少。请帮忙!谢谢!
答案 0 :(得分:0)
您可以使用类似ActiveAdmin的内容。这也有助于您快速开发管理页面。您可以直接在种子数据中定义管理员,只有那些用户才能登录管理面板。由于AcftiveAdmin没有注册链接/功能,我相信 - 它应该符合您的目的。
答案 1 :(得分:0)
这基本上看起来只是一个邀请注册。由于案例很简单,所以在代码中硬编码邀请令牌并不害羞。
class ApplicationController < ActionController::Base
helper_method :match_invitation
def match_invitation
params[:invitation_token] == 123456
# Or set it as an enviroment variable using Figaro gem
# params[:invitation_token] == env['invitation_token']
end
end
# View
<% if match_invitation %>
<%= render partial: 'sign_up' %>
# Signup controller
class RegistrationController
before_filter :check_invitation
def check_invitation
unless match_invitation
return redirect_to root_path, alert: "You are not allowed to sign up"
end
end
end
用法,将令牌链接提供给您允许注册的人
www.example.com/sign_up?invitation_token=12345
答案 2 :(得分:0)
从控制台创建用户没什么不方便,这是最快捷,最简单的解决方案。 我甚至会删除您网页上的登录链接,并通过手动添加/登录您的家庭网址来访问它。 如果只有2个人管理应用程序,你可以尽可能多地破解。
ActiveAdmin也是一个不错的选择,但这取决于您希望管理员能够做什么。如果只是管理博客内容或电子商务后端,则无需费心安装和配置。