【问题标题】:How can I implement user sessions with android app and node server?如何使用 android 应用程序和节点服务器实现用户会话?
【发布时间】:2017-11-15 18:10:37
【问题描述】:

我已经构建了一个 android 应用程序,它可以很好地连接到我的 node express 服务器。但是我不知道如何实现用户会话,以便当用户从我的服务器“发布”或“获取”时,我的服务器可以找到它是哪个用户。

我之前的经验是做一个简单的网站,我使用的是 express-sessions,并且使用 session 的附加用户名来搜索 MySql 数据库并找到有关用户的相关信息。

我目前在我的应用程序中使用 OkHTTP3 进行连接。

是否有一个简单的想法来完成这项工作?

【问题讨论】:

  • 我不熟悉 express-sessions 的工作原理,但假设它使用 cookie,所以从 OkHttp3 的角度来看,您应该考虑使用 cookie 存储,否则所有会话都不起作用:@987654321 @
  • 在这种情况下,快速会话将不起作用,将 jsonwebtoken 用于您的 API,在 Android 应用程序中,将您的令牌存储在 localstorage 中,并通过本地存储的每个请求发回令牌
  • 我需要将令牌存储在数据库中吗?服务器是如何识别的?

标签: android mysql node.js session okhttp3


【解决方案1】:

在这种情况下,您需要一个 WebAPI - API 中没有没有 cookie 也没有会话。唯一将用户从客户端代码链接到后端代码的是 JWT

你可以自己写,但没有必要,因为你可以找到一个不错的中间件来做这件事……express-jwt

这将使您不仅可以创建JSON WEB TOKENS,还可以验证它们,这是一个很好的Middleware,它可以轻松解决您的问题。

此中间件可让您在 Node.js 应用程序中使用 JWT 令牌验证 HTTP 请求。 JWT 通常用于保护 API 端点,并且通常使用 OpenID Connect 发布

var jwt = require('express-jwt');

app.get('/protected',
  jwt({secret: 'your-super shhhhhhared-secret'}),
  function(req, res) {
    if (!req.user.admin) return res.sendStatus(401);
    res.sendStatus(200);
  });

【讨论】:

    猜你喜欢
    • 2016-01-07
    • 2012-05-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-16
    • 2020-02-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多