ユーザーが Github 認証資格情報を使用してサインインできるようにするアプリケーションを構築しています。問題は、特定のユーザーへのアクセスを制限することについて、ドキュメントに何も見つからないことです。たとえば、特定の一連の組織のユーザーが、github アカウントを持っているだけでなく、すべての人にログインできるようにしたいと考えています。何か助けはありますか?
1 に答える
サイクルのどの時点で、Githubの前またはGithubの後に認証するかを選択できます。あなたの質問から判断すると、認証中/認証後にこれを実行したいと思います。Githubを使用すると組織情報を追加できますが、これを使用したことがないため、メンバーシップシニフィアンとしてどれほど安全かはわかりませんが、十分であると思います。
認証時に、キーの下のRack envにある認証ハッシュinfo
のキーで、ユーザーに関する詳細のロードが返送されます。返された認証ハッシュを見ると、組織の詳細が含まれている可能性があります。または、この時点でそれらを要求することもできます。これを条件として単純な条件を実行できます。ユーザーが参加していない場合は、失敗します。Omniauth wikiのSinatraの例を見ると、それが言うところがわかります'omniauth.auth'
# do whatever you want with the information!
。この時点で、チェックして合格または不合格にします(Railsの例よりも少し明確なので、これを選択しましたが、Railsの場合は、コントローラーでマップしたアクションで同じことを行います)。例外を発生させるか、(私の選択は)それらを障害エンドポイントにリダイレクトすることができます。それはあなた次第です。
可能であれば、ログインを試みる前に警告することをお勧めします。