小编ton*_*y m的帖子

Google App Engine:使用自定义身份验证或Open ID时的端点身份验证

我最近开始使用Google App Engine.我打算使用Flask来提供网页和端点API,最好使用Endpoints-Proto-Datastore来处理其他所有内容.

从一开始,GAE上的非Google身份验证机制似乎需要一些工作.我很感激到目前为止我发现的任何问题:

自定义验证

如果您可以将Open ID提供程序编写为应用程序的一部分,请使用类似Python-OpenID的内容,并在同一工作流程中实现使用者,以使其看起来像常规登录.这样,它可以很好地集成到GAE Users API提供的内容中.我猜这是否正确,users.get_current_user()将正常工作.

如果你想跳过编写自己的OpenID提供程序,而是使用与NDB集成的Flask-Login编写一个电子邮件/密码auth系统,那也应该没问题.但是,GAE文档中有一些令人费解的信息说我可以像这样实例化一个用户对象:

user = users.User("XYZ@XYZ.com")

但是,(这里没有user.put()方法)a users.get_current_user()仍然返回None.那么构建用户对象的用途是什么呢?

端点授权

在针对Endpoint-Proto-Datastore滚动API的方法装饰器中包含user = required时,OAuth似乎立即起作用 - 在API explorer中测试它时所要做的就是打开OAuth 2.0开关并选择一个有效的Oauth 2.0范围.那么这是否意味着如果我们实现一个与User API正确集成的OpenID提供程序,那么使用端点API的OAuth魔法是不够的?

在这里,似乎构建用户对象无助于满足身份验证要求.

自定义身份验证/另一个OpenID实现如何与Endpoint API身份验证/授权一起使用?

openid google-app-engine oauth-2.0 google-cloud-endpoints

7
推荐指数
1
解决办法
2135
查看次数

在模式卫星和地形中查看地图

我尝试在屏幕上创建一个菜单,该菜单将在卫星模式和地形中显示地图。

我的代码:

public boolean onOptionsItemSelected(MenuItem item) {
  switch (item.getItemId()) {
  case MENU_MyLocation:
   //startActivity(new Intent(this, MyLocation.class));
   return(true);
  case MENU_LocationCar:
   startActivity(new Intent(this, Gps.class));
   return(true);
  case MENU_Satellite:
      map.setMapType(GoogleMap.MAP_TYPE_SATELLITE);
       return(true);
  case MENU_Terrain:
      map.setMapType(GoogleMap.MAP_TYPE_TERRAIN);
   return(true);
  }

  return(super.onOptionsItemSelected(item));
}
Run Code Online (Sandbox Code Playgroud)

android google-maps google-maps-android-api-2

5
推荐指数
1
解决办法
4944
查看次数

同一应用中的Google Maps SDK和Mapkit会导致崩溃

试图让用户选择在我的应用程序中选择谷歌地图(sdk)和苹果地图(mapkit).该应用程序没有使用ARC.崩溃场景(ios 6.0/6.1):1.进入谷歌地图(模态控制器).2.退出谷歌地图(解雇模态).3.将我的应用程序更改为apple maps(mapkit).4.输入apple maps(模态控制器).

应用程序崩溃,我得到:[EAGLContext setCurrentContext:]

如果我不在dealloc中释放谷歌地图,则不会发生错误,但它可能会导致内存泄漏.我在viewDidLoad中保留地图并在dealloc中释放地图.

有人可以帮忙吗?谢谢,Tomer

更详细的堆栈跟踪:

1   0x0a041324 in -[VGLGPU init] ()
2   0x0a041032 in __24+[VGLGPU sharedInstance]_block_invoke_0 ()
3   0x03b52014 in _dispatch_client_callout ()
4   0x03b4409f in dispatch_once_f ()
5   0x03b44061 in dispatch_once ()
6   0x0a040fef in +[VGLGPU sharedInstance] ()
7   0x09fab26b in -[VKMainLoop updateLinkState] ()
8   0x09fabb02 in -[VKMainLoop removeCanvas:] ()
9   0x09f9f2aa in -[VKScreenCanvas _updateDisplayStatus:] ()
10  0x09f9f3fb in -[VKScreenCanvas setNeedsDisplay] ()
11  0x027bc03d in -[UIView initWithFrame:] ()
12  0x09f75658 in -[VGLScreenCanvas initWithFrame:context:] ()
15  0x09f907e7 …
Run Code Online (Sandbox Code Playgroud)

mapkit ios google-maps-sdk-ios

3
推荐指数
1
解决办法
2137
查看次数

Google+和AppEngine身份验证

我有一个已安装Google+的Android应用程序,我想知道是否可以使用此连接来验证Google AppEngine端点.

Google示例代码是:

   settings = getSharedPreferences(TAG, 0);
    credential = GoogleAccountCredential.usingAudience(this, ClientCredentials.AUDIENCE);
    setAccountName(settings.getString(PREF_ACCOUNT_NAME, null));
    Tictactoe.Builder builder = new Tictactoe.Builder(
        AndroidHttp.newCompatibleTransport(), new GsonFactory(),
        credential);
    service = builder.build();
Run Code Online (Sandbox Code Playgroud)

所以这很好,但我正在重新进行身份验证.我可以以任何方式利用PlusClient来避免创建更多凭据吗?

谢谢

google-app-engine android oauth-2.0 google-plus google-cloud-endpoints

2
推荐指数
1
解决办法
1239
查看次数