上使用AppIdentityService的我目前使用com.google.appendinge.api.appidentity.AppIdentityService
便於認證&授權使用相同的應用程序的[即一個應用程序。相同的帳戶]電子表格數據通過SpreadsheetService
API。在部署到GAE環境的生產模式下非常有效。但是,由於顯而易見的原因,它在我的開發appengine環境中運行並不起作用(認證錯誤,並不奇怪)。配置開發服務器
我的問題是:是否有可能&「支持」一個人的本地開發服務器配置爲使用所需的關鍵&證書信息,使AppIdentityService按預期工作?
我讀的文章https://sites.google.com/site/oauthgoog/authenticate-google-app-engine-app我理解它表明,它是可能的,但我被錯誤地理解關鍵點&將不勝感激對此的任何反饋Pro & CON。
在一個完美的世界中,我希望我的測試環境儘可能地模仿生產模式。我也在考慮在我的測試環境中使用'normal'oauth2 web應用程序認證,但如果可能的話,寧願堅持使用AppIdentityService。
我懷疑appengine-api-stubs.jar
中的com.google.appengine.api.appidentity.dev.LocalAppIdentityService
類是預期的技術,但有其他人也使用它來在開發服務器中提供AppIdentityService
驗證嗎?我最初的假設是將com.google.appengine.spi.FactoryProvider中的類com.google.appengine.api.appidentity.IAppIdentityServiceFactoryProvider
替換爲使用我自己的工廠類,使用上面的LocalAppIdentityService類。還是我吠叫錯了樹?
使用適用於Java的GAE SDK 1.8.8。
我不認爲使用AppIdentity有很多意義:AppIdentity的信任錨是Prod中的App Engine。在開發環境中,無論如何您都需要新的信任錨(即服務帳戶)。你可能編寫一個新的AppIdentityService,但爲什麼要麻煩? Dev中無論如何都需要一個新用戶,因此需要不同的代碼。 我使用生成DriveService和SpreadsheetService的工廠,使用AppIdentity(在Prod中)或服務帳戶(在Dev中)。 AppIdentity和服務帳戶在Drive中獲得不同的權限,服務帳戶只能訪問測試數據。 –