私のアプリケーションを完全に非公開にして、開発者がアクセスできるようにする方法はありますか?Herokuアプリケーションを非公開にするにはどうすればよいですか?
ランダムなユーザーがURLを入力すると、空白のページのようになりますが、開発者がURLを入力すると、そのアプリケーションにアクセスできるはずです。
私のアプリケーションを完全に非公開にして、開発者がアクセスできるようにする方法はありますか?Herokuアプリケーションを非公開にするにはどうすればよいですか?
ランダムなユーザーがURLを入力すると、空白のページのようになりますが、開発者がURLを入力すると、そのアプリケーションにアクセスできるはずです。
私の格安ソリューションでは、すべてのアクションが実行される前にHTTP認証を要求するbefore_filterを実装しています。
このソリューションは、他の認証レイヤー - Deviseなどでうまく機能します。
USERS = { "user" => "secret" }
before_filter :authenticate
def authenticate
authenticate_or_request_with_http_digest("Application") do |name|
USERS[name]
end
end
他のピアがyourdomain.heroku.comに着陸するたびに場所であれば、彼らは後に他の認証のために、HTTP認証を求めています。
があります。ユーザー名とパスワードを保存する方が良いですHeroku構成変数(http://blog.heroku.com/archives/2009/4/7/config-vars)とハッシュ(http://zacharyfox.com/blog/ruby-on-rails/password-hashing)として、ただし、Rails.env == 'production'の場合にのみ認証が行われます。 – avalez
これをAngularJSアプリ(角型のフルスタックジェネレータ)で使用できますか?もしそうなら、私は実際にこのコードを追加してHerokuにプッシュしますか? – LifeOnLars
Rails 4には上記の組み込み関数があります:http://api.rubyonrails.org/classes/ActionController/HttpAuthentication/Basic.html –
あなたは簡単な方法として、HTTP基本認証を使用することができます。
Is there a way to set up simple http authentication for an app on heroku?
ないまさに弾丸の証拠が、おそらく十分。
それが設定されていない場合にもheroku_user
をチェックし、アクセスを拒否してみてください:
をそれた場合ので、私は知らない私はheroku_user
に多くのドキュメントを見つけることができません依然としてサポートされています。
authlogic gem、特にシングルアクセストークン機能を確認してください。
適切な単一アクセストークンを引数として渡していない人には、404を返すことができます。
本当に簡単な解決策は、ユーザーのマシン上のCookieに格納できるキーを追加することです。誰かがキーを手に入れることができるので、これは完璧な解決策ではありませんが、サイトを跨いでいる人からの基本的な保護を提供します。 http://www.yourdomain.com?access_key=random_stringのようなURLを使用して、アプリケーションコントローラに以下を追加することができます。
class ApplicationController < ActionController::Base
before_filter :check_redirect_key
def check_redirect_key
if request[:access_key] != 'random_string' && cookies[:access_key] != 'random_string'
redirect_to "/404.html"
elsif request[:access_key] == 'random_string'
cookies.permanent[:access_key] = 'random_string'
end
end
end
このコードでは、ユーザーのマシン上のURLまたはCookieのアクセスキーがチェックされ、いずれかの場所に存在する場合はアクセスできます。そうすれば、彼らはキーを使ってサイトにアクセスした後、URLに直接アクセスすることができます。
ありがとう!これは素敵でシンプルだったので、私はsailsjs(ノード)アプリにそれを適用し、それはきれいに働いた。 –
これで、アプリケーションにアクセスできるユーザーの電子メールを指定し、Persona(BrowserIDとも呼ばれます)を使用してユーザーを認証します(サイト固有のパスワードは必要ありません)。
米国地域でのみご利用いただけます... – Imanol
私はこのユースケースを自分で処理するためにrack_stagingの宝石を作りましたが、それはあなたにとっても役に立つかもしれません。
私(また、安い)ソリューション(クラスベースのビューを使用してDjangoのアプリ)は、このようにすべての私のクラスベースのビューでSuperUserRequiredMixin
を使用することです:
class BlogPostDetailView(SuperuserRequiredMixin, DetailView):
template_name = "blogpost-detail.html"
model = BlogPost
はこのミックスインを削除/追加について移動する私の方法でありますこの。
誰かがnode.jsを探してGoogleから来た場合、ここに[link](http://blog.modulus.io/nodejs-and-express-basic-authentication) – funroll