我知道我提出的问题很模糊,但谷歌已经对此表示不满。我正在尝试在Cloud Endpoints中构建一个挂钩到React前端的API。该应用程序需要身份验证和授权 - 所以我自然会有一些选择:
1)自定义登录 2)通过OAuth2的第三方 3)两者(我想做什么)
我的问题是,我将如何使用Endpoints API实现自定义身份验证系统?由于它是RESTful服务,我知道它是无状态的。我究竟如何存储会话数据?我是否必须在每个API请求中发送凭据(这看起来很乏味)?
加,有人可以指点我在这方向吗?在身份验证方面,我不是最知识渊博的人。谢谢!答案 0 :(得分:3)
Google的云终端中有一个鲜为人知且未记录的功能,允许您在api class level或api method level上使用自定义身份验证器。这也在stackoverflow question中描述/记录。
这里有关于python的stackoverflow的一些问题,如this,就我所见,它使用cookie。我还没有看到如何在Java中实现自定义身份验证器。
关于如何在无状态服务中存储会话数据。答案很简单:你不。对api的每次调用都应包含处理请求的所有信息。因此,客户端需要维护会话信息,并在需要api呼叫时提供。
如果通过会话数据表示通常的用户数据(名称,地址等),那些附加到您的用户(而不是当前会话),那么如果您有一个正常工作的身份验证器,您只需从您的用户请求用户信息数据库通过经过身份验证的用户。