2016-04-21 69 views
0

我开始一个新的项目,并使用基于JavaScript的UI作为前端和谷歌云端点支持谷歌数据存储的数据存储。谷歌应用引擎云端点安全

我不需要使用任何的谷歌服务用户登录等换句话说,我将有我自己的表来存储用户名,密码和其他个人资料信息。

所以,问题是: 1.我的基于服务的前端将如何举行会议? 2.它将如何理解要求哪个用户帐户返回用户特定的数据?

此外,我迄今为止创建了一个端点,它在传递用户名时基本上返回true或false。 (只是为了模仿有效的用户)。

问题是我真的需要配置任何安全性来从JavaScript客户端调用这个API我有吗?

+1

如果你正在滚动自己的认证,你将不得不编写自己的认证/授权层。 –

+0

以及使用现有身份验证但使用我自己的设置用户名密码的方式是什么? – Vik

+1

如果您使用Flask或Django,可能。在Django中,您可以将它们导入到自己的数据库中,或者创建一个自定义身份验证后端。用烧瓶,你可以整合烧瓶登录或烧瓶安全。我不知道webapp2中有这样的功能。 (编辑:或者在端点中,我也不知道任何这样的功能。) –

回答

1

即使您想使用自定义用户名和密码,您也不仅仅需要一个过程来从端点发送和检索这些数据。

考虑使用已经存在的东西。例如。 webapp2有一个基本的验证模块,它允许你拥有自己的用户名和密码数据库,但已经有许多必要的安全措施。

我用过去来实现这方面的一个教程:https://blog.abahgat.com/2013/01/07/user-authentication-with-webapp2-on-google-app-engine/

+0

它用于python。我需要java – Vik

1

所以基本答案是谷歌云终点是最适合哪些用户Google帐户的身份验证机制的应用。

所以,如果您使用云端点,并希望有自定义身份验证机制,您必须创建自己的。

我的基于服务的前端将如何保存会话?

成功验证后(通过任何形式的用户凭据,第三方社交登录等),您需要为该用户设置会话,例如:通过使用会话cookie。

它将如何理解请求要为哪个用户帐户返回用户特定的数据?

Cloud Endpoint无法说明这一点,因此您必须编写自定义筛选器或拦截器来检查是否存在有效的会话或cookie,并拒绝或继续请求。

要通过谁是请求API当前认证的用户,你需要(使用DI,或请求的属性等)到ApiEndpoints某种方式注入用户信息,所以用你能处理相应请求

+0

所以如果我不去我自己的安全层,并依靠谷歌的话,那么我的最终用户必须有一个谷歌帐户才能使用我的网站? – Vik

+0

是的,没错,但是应该根据你的应用程序而不是appengine提供什么来做出决定,如果你的业务需要定制认证,那么你应该去建立你自己的 –