2013-08-27 10 views
8

Meteor.loginWithGoogle()ツールを使用してユーザーを認証したいのですが、特定の(Google Apps)ドメインに限定する方法はありますか?ドメインにMeteor.js組み込みのGoogle認証を設定する

返信されたメールを使用してユーザーを認証した後で確認できましたが、ログイン時にGoogleログイン用のパラメータを使用してこれを行う方法がありますか?

+0

「特定のドメインに限定する」とはどういう意味ですか? .comまたは.co.ukのアドレスを持つgmailユーザーのみが必要なのはどういう意味ですか?または、アプリケーションが複数のドメインで動作し、そのうちの1つでgoogle認証が機能するだけであることを意味しますか?他に何か? – BenjaminRH

+0

私はGoogle Appsドメインを意味していたので、他のGoogleアカウントではなく、@ .comアカウントでログインすることができます。 – kennysong

答えて

9

私は今考えていません。 部分的にその機能を追加するプルのリクエスチョンがあります:https://github.com/meteor/meteor/pull/1332 プルリクエストの問題は、クライアントの側を修正するだけです(つまり、ユーザがログインしたときに選択されたドメインのアカウントしか表示しない)。 しかし、サーバーサイドのチェックは追加されません。私は、次のコードを持っているサーバフォルダ内の.jsファイルで :

イム次の回避策を使用して

Accounts.validateNewUser(function (user) { 
    if(user.services.google.email.match(/example\.org$/)) { 
     return true; 
    } 
    throw new Meteor.Error(403, "You must sign in using a example.org account"); 
}); 

をこれがexample.orgは異なるドメインのために作られてからアカウントを防ぐことができます。

+7

それはビルドされています: 'Accounts.config({restrictCreationByEmailDomain: 'mydomain.com'})' – Jaap

1

ドメインの特定のユーザーのみを許可する場合は、Google AppsアカウントのユーザーIDを定義するホワイトリストコレクションを追加することもできます。こうすることで、特定のユーザーだけにアクセスを制限したり、シングルサインオン機能を使用したり、ユーザーのアカウントを作成する前にアプリのユーザーロールやプロパティを事前に設定したりすることができます。

追加のユーザープロパティを定義できるため、Accounts.onCreateUser(function(options, user){})コールバックを使用します。

関連する問題