0

Grails 2.3.8 および

plugins {
  compile ':spring-security-core:2.0-RC2'
  compile ':spring-security-oauth:2.0.2'
  compile ':spring-security-oauth-facebook:0.1'
  compile ':spring-security-oauth-google:0.1'
}

およびデフォルトのプロバイダー設定:

oauth{
 providers{

facebook{
  api = org.scribe.builder.api.FacebookApi
  key = '11111'
  secret = '222222'
  successUri = "http://localhost:8880/oauth/facebook/success"
  failureUri = "http://localhost:8880/oauth/facebook/error"
  callback = "http://localhost:8880/oauth/facebook/callback"
  scope = 'email'
}
}

私が理解したように、コールバックには絶対 URL を使用する必要があります。私のアプリは myapp.com、myapp.de、myapp.ru などの複数のドメインにマッピングされているため、これは問題です。

各ドメインにコールバック URL を提供することはすぐに可能ですか?

ティア

4

1 に答える 1

1

それで、私はそれを理解しました!

ソリューションには少し醜い部分がありますが、魅力的に機能します。

私の構成では、サーバー名がプロバイダー名とコールバック URL に反映されるように、プロバイダーを変更する必要がありました。

oauth{
  providers{

    facebook{
      api = org.scribe.builder.api.FacebookApi
      key = '11111'
      secret = '22222222'
      scope = 'email'
    }

    'facebook_localhost'{
      api = org.scribe.builder.api.FacebookApi
      key = '111111'
      secret = '222222222'
      successUri = "http://localhost:8880/oauth/facebook_localhost/success"
      failureUri = "http://localhost:8880/oauth/facebook_localhost/error"
      callback = "http://localhost:8880/oauth/facebook_localhost/callback"
      scope = 'email'
    }

    'facebook_wwwmysitenet'{
      api = org.scribe.builder.api.FacebookApi
      key = '9999999'
      secret = '888888888888'
      successUri = "http://www.mesite.net/oauth/facebook_wwwmesitenet/success"
      failureUri = "http://www.mesite.net/oauth/facebook_wwwmesitenet/error"
      callback = "http://www.mesite.net/oauth/facebook_wwwmesitenet/callback"
      scope = 'email'
    }
  }
}

処理を簡単にするために、サーバー名からドットを削除します。

私がグーグルのために作ったのと同じです。

于 2014-05-15T14:44:50.050 に答える