Я пытаюсь создать блог с Rails и очень люблю Enki www.Enkiblog.com.Однако меня немного смущает система аутентификации, которую он использует с Open Id.В процессе разработки он позволяет обойти аутентификацию, но для производства требуется использовать сервер OpenId ![enter image description here](https://i.stack.imgur.com/m34VM.png)
Я надеюсь включить в него более простую систему аутентификации, но не знаюесли это проще (я нуб) или лучше попытаться выяснить, как настроить сервер OpenId (который требует дополнительной установки)
Я посмотрел на сервер Open Id под названием Masquerade, но этополностью смутил меняЯ не уверен, что это то, что я пытаюсь внедрить в Enki (например, Rails Engine) или это совершенно отдельное приложение.
Есть мысли, как можно упростить аутентификацию или как ее можно упростить, чтобы нуб мог ее использовать?
Это файл enki.yml, который настраивается для аутентификации OpenId в Enki.
# 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
Это действие create из администратора / сессий контроллера, который выполняет эту аутентификацию
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