我正在尝试使用Rails建立一个博客,并且非常喜欢Enki www.Enkiblog.com。但是,我对它与Open Id一起使用的身份验证系统感到有点困惑。在开发时,它允许您绕过身份验证,但对于生产,它似乎要求您使用OpenId服务器
我希望将更简单的身份验证系统与它结合使用,但不知道这是否更简单(我是菜鸟)或者是否最好试图找出如何设置OpenId服务器(这需要更多安装)
我确实看过一个名为Masquerade的Open Id服务器,但它让我很困惑。我不确定这是否是我尝试与Enki合并的东西(如Rails引擎)或者它是一个完全独立的应用程序。
我是否有任何想法可以简化身份验证,或者如何简化身份验证以便菜鸟可以使用它?
这是在Enki
中设置OpenId身份验证的enki.yml文件 # Configuration options for your blog - customise to taste
# This file contains no secret information, so can be stored in source control (unlike database.yml)
title: My Enki Blog
url: http://enkiblog.com
author:
name: Don Alias # For copyright notice and ATOM feeds
email: don@enkiblog.com # Exception emails will go here, and it is used in ATOM feeds
open_id: # These are used to login to the admin area
- http://enkiblog.com
- http://secondaryopenid.com
# Delete the following section if your site will not be acting as an OpenID delegate (http://wiki.openid.net/Delegation)
# If you're deploying with mongrel, make sure you read http://rhnh.net/2008/04/13/nginx-openid-delegation-and-yadis
open_id_delegation:
server: http://www.myopenid.com/server
delegate: http://username.myopenid.com
这是执行该身份验证的管理员/会话控制器的创建操作
def create
return successful_login if allow_login_bypass? && params[:bypass_login]
if params[:openid_url].blank? && !request.env[Rack::OpenID::RESPONSE]
flash.now[:error] = "You must provide an OpenID URL"
render :action => 'new'
else
authenticate_with_open_id(params[:openid_url]) do |result, identity_url|
if result.successful?
if enki_config.author_open_ids.include?(URI.parse(identity_url))
return successful_login
else
flash.now[:error] = "You are not authorized"
end
else
flash.now[:error] = result.message
end
render :action => 'new'
end
end
end
答案 0 :(得分:0)
您需要的只是google(您的个人资料网址)或openid.net的任何开放ID提供商的公开ID。找到您的开放ID网址后,您需要做的就是打开 config / enki.yml 并将open-id值更改为您的开放ID网址。 e.g:
open_id: # These are used to login to the admin area
- https://plus.google.com/102381073183096542549
现在要在管理面板上登录,只需输入您的个人资料网址即可。它可能会要求您登录您的开放ID提供商的网站,如google.com,然后要求获取 yourblog.com 的权限。获得授权后,您将拥有管理员权限。由于您已将其限制为enki.yml中的open_id,因此没有其他人可以访问管理区域
答案 1 :(得分:-1)
你可以通过黑客攻击代码从Enki中删除OpenID身份验证。我设法做到这一点(Rails新手)所以它并不是那么困难。
唯一的问题是,现在你可以自己更新Enki代码......从我记忆中,为实现这一目标,必须做出很多改变。