网站登录 Java + Google App Engine
我是Web编程的新手,来自视频游戏开发背景(c ++),并且真的开始感到信息过载。有这么多相互竞争的库,它们都选择他们不喜欢的其他库,并建立一种全新的方法来做同样的事情!我相信这是有充分理由的,我不想抱怨,所以我会解释我的问题。
为了简化我的旅程,我决定开始学习Google App Engine + GWT + Java。我喜欢它是因为它是一个开箱即用的分布式服务器架构,我选择Java是因为我C++背景。
首先,我写了一些类似Twitter的应用程序,因为它测试了Web开发的各个方面,即:REST,JSON解析/创建,AJAX通信和HTML生成。我没花太长时间就创建了一个小网站,允许用户在浏览器中的页面中输入他们的名字和密码,将数据发送到我的应用程序,我代表他们登录,抓取他们的朋友列表,并将其作为JSON发送回客户端,在那里我解析并显示它。
非常简单的东西。
因此,下一步是我不喜欢将用户通过网络输入的密码作为纯文本发送(显然)。这让我想到了我需要的所有管道:
- 根据我自己的数据库(而不是 Google 的数据库)对用户进行身份验证。(登录/丢失密码/注销)
- 进入/退出(跟踪)会话(已登录/已注销)。
- 将用户数据存储在我的 Google 应用的数据库中。
所有非常标准的东西,都已经存在了。好吧,我开始四处寻找Java身份验证库,并且有如此大的单体库,具有巨大的学习曲线,有些是旧的或不再赞成......我感觉自己又像个初学者程序员了!我只想有一个登录页面!:)
因此,我开始阅读有关身份验证管道如何工作的信息,并且有大量内容需要吸收。显然,人们(不安全地)自己滚动是很常见的。我宁愿采取一个存在且可靠的解决方案。
所以问题来了,人们对此该怎么办?Twitter同时支持HTTP和HTTPS,但默认使用HTTP作为其REST API,这是否意味着人们的密码在不受保护的情况下飞来飞去,随时准备被中间人黑客拦截?
我还看了OAuth,它看起来很棒,但它没有一个很好的老案例“我不想知道或关心OpenID是什么”。我向OpenID展示的非技术人员就像“哇?我只想把我的用户名/密码放进去”。
顺便说一句,有没有人在Google App Engine上使用Spring.Security?
无论如何,我在咆哮。我只是想知道人们做什么(不是在Python,Rails等中,而是在良好的旧Java中)。我很想有一个像Digg这样的登录页面,甚至有一天可以选择OpenID:)
干杯,谢恩