首页 文章

Phonegap和Jquery移动应用程序使用Codeigniter Ion Auth后端登录

提问于
浏览
7

我已经有了使用Codeigniter PHP框架和Ion Auth身份验证库(用于Codeigniter)构建的CRUD Web应用程序 . 因此用户需要登录才能使用该网站等 .

现在我使用Phonegap和jQuery mobile构建小型移动应用程序,该移动应用程序使用相同的后端 . 后端有“REST like”api处理来自移动客户端的所有ajax请求 .

我该如何处理此移动应用的用户身份验证?我想尽可能多地使用现有的后端代码库 .

我正在计划这样的事情:

  • 从客户端发送用户名并传递给服务器

  • 将会话ID从服务器返回给客户端

  • 将会话ID存储到客户端(本地存储)

  • 将每个请求中的该令牌发送到服务器并在服务器端验证它 .

如何在后端执行此操作?对于登录,我可以使用Codeigniter Ion Auth库登录方法并获得Codeigniter(PHP)会话ID . 在第二个请求中,当用户将一些实际数据与sessoin id一起发送时,如何验证会话ID?或者,除了尝试使用现有功能(Codeignitre Ion Auth库)之外,为移动应用程序身份验证构建全新的登录功能是否更好?

所有的想法和建议都非常受欢迎!

2 回答

  • 0

    我认为最好的解决方案就是在控制器和请求之间放置一个中间件 .

    你可以用钩子做到这一点:http://ellislab.com/codeigniter/user-guide/general/hooks.html

    使用预控制器挂钩 .

    要轻松管理API请求,请使用HTTP代码

    • 404 :未找到项目(如/ client /:id)

    • 500 :服务器出现问题

    • 401 :没有令牌

    • 403 :此令牌无权访问此资源(就像想要访问管理员资料的简单用户一样)

    你在这里有所有代码:http://en.wikipedia.org/wiki/List_of_HTTP_status_codes

    如果您可以更轻松地避免使用复杂的库 . 钩子对我来说是最好的 .

    我使用NodeJS,其概念与Express中间件相同 .

  • 1

    我使用phonegap和jQuery Mobile开发了相同类型的移动应用程序,并在我的网站后端使用MySQL数据库,这是在节点js平台,但使用API访问所有功能的整体想法是相同的 .

    API调用服务器进行登录以及所有其他操作,如获取数据,将数据发送到服务器等 .

    如果您已经在服务器端准备好API,那么只需调用该API即可完成所有操作 . 首先,您可以调用API的登录功能,如果成功则传递用户名和密码,然后返回带有user_id的成功令牌,您可以将其存储在本地移动数据库中 . 我使用SQLite进行移动存储 .

    然后在每个其他请求上,我使用该令牌进行身份验证并在服务器上执行操作 .

    您还可以在我的应用程序中添加自动登录功能,因此无需每次都登录 .

相关问题