桌面Flex应用程序登录系统

时间:2010-10-15 06:21:28

标签: php flex zend-framework air

我目前正处于桌面Flex应用程序的规划/早期构建阶段,该应用程序将与Web服务器上的Zend应用程序进行通信。

Flex应用程序基本上就像MVC模式的布局/视图一样,它将向各种控制器动作发出请求并以有意义的方式显示返回的数据,并发布将更新数据库中各种数据的数据在服务器上。

基本上我想知道的是为桌面应用程序构建登录系统的最佳方法。希望我认为如果您的用户通过浏览器访问应用程序,我不能使用常规频道,所以我认为我会这样做:

  1. Flex应用程序将登录详细信息(电子邮件,密码)发布到登录操作
  2. 登录操作使用Zend Auth检查详细信息是否有效
  3. 登录操作会创建一个唯一的哈希(并将其与用户的id一起存储在db中),并将包含哈希的json对象和用户的id返回给flex应用程序
  4. 每当Flex应用程序向Web应用程序中的任何操作发出请求时,它都会发送用户的id和唯一的哈希,以便Web应用程序可以验证用户。
  5. 这是否有意义,或者我在这里咆哮错误的树?

    让我知道你的想法,以及我是否应该研究一个更好的解决方案。

    谢谢!

2 个答案:

答案 0 :(得分:1)

是的,你正在做什么,我已经建立了一个类似的系统但是,在这种情况下我使用基本身份验证,当我向服务器发送HTTPService时,我在头部包含哈希(令牌)

我正在使用由同事建立的API,当我进行登录操作时,他会向我发送令牌。

我发送的标题信息如下所示:

myHttpService.headers = {Authorization:"Basic " + encoderString};   

使用我记录时服务器返回给我的用户名和令牌来创建encoderString变量,我使用这些变量来创建encoderString:

var encoder:Base64Encoder = new Base64Encoder();
var encoderString:String;    

encoder.encode(login+":"+token);
encoderString=Basics.encoder.toString();

答案 1 :(得分:1)

查看Apache Shiro,这是一个非常酷且简单易用的安全库,它需要最少的依赖性,很少的配置,并且无论你是在构建一个旧的学校HTML应用程序,Flex富客户端网络都不会激动人心应用程序,或桌面Flex / AIR(甚至Swing)应用程序。