繁体   English   中英

用户登录并使用phonegap应用程序保持登录状态?

[英]User login and stay logged in with phonegap app?

我正在使用Phonegap为我的网站构建移动应用程序,我正在使用PHP Codeigniter框架来创建我的REST API。 我需要允许用户登录到应用程序并检索信息,但我对身份验证部分感到困惑。

现在这就是我的想法:

  • 用户使用用户名/密码登录(他们将使用HTTPS发送到服务器)
  • 我的API将检查数据库以查看用户是否存在
  • 如果用户存在,则生成随机字符串(令牌)并将其发送回客户端
  • 在客户端(移动应用程序),将令牌存储在某处
  • 每次用户从服务器请求信息时,都会发送令牌进行验证

我决定使用令牌方法,因为我需要允许用户在第一次登录时保持登录到应用程序(我读到在客户端存储用户名/密码很糟糕)。

所以这是我的问题,

我的方法有效/安全吗? 如果是这样,令牌如何存储在phonegap上? localStorage会做这个工作吗?

有更好更简单的方法吗?

是否有库可以帮助我更轻松/更快地完成这项工作? 特别是构建REST API?

最后,我听说过OAuth2,但这只适用于你想要允许第三方登录(google,facebook等)的情况? 我调查了它,似乎有一个OAuth for PHP和OAuth for Phonegap。 如果我实现这个,我是否需要在我的REST API和phonegap方面做到这一点?

我对这一切都很陌生,所以任何带有例子的解释都会有所帮助。

我建议使用您的令牌方法。每次启动应用程序时,如果未设置http请求并将令牌存储在localstorage中,则检查localstorage是否设置了用户令牌。 这是示例代码

function validateUser(username,password){
  //get the user token from local storage
    if(window.localStorage.getItem('usertoken')==null){
           //set up the http request
            $.ajax({
              url:'www.example.com/login.php',
              method:post,
              data:{'username':username,'password':password}
              success:function(data){
                 //set the token in localstorage
                 window.localStorage.setItem('usertoken',data);

              }
           });
       }
      }  
    }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM