我希望有一个功能可以在我的应用程序(反应网络应用程序和 Android应用程序”中显示用户的当前会话(用户已登录的所有设备) ),这样他们就可以终止其他会话,或者如果他们行为不当,也可以将其注销。
以前,我在android中使用过JWT,要撤销用户令牌并不容易。
我现在正在使用 Redis 作为全新项目中的会话存储,该项目在网络上正常工作,但是我想知道 Android 应用程序该怎么做,因为我在以前的项目中,曾经在标头中使用JWT并使用express-jwt对其进行验证。
我最担心的是
目前,我将ioredis用作Redis客户端,将express-session与connect-redis一起使用。我将userId会话存储在 loginResolver 中,就像
req.session!.userId = id;
// Should i store JWT?
server.ts
app.use(
session({
store: new RedisStore({
client: redis as any,
logErrors: true
}),
name: COOKIE_NAME,
secret: config.get('session_secret'),
resave: false,
saveUninitialized: false,
cookie: {
httpOnly: true,
secure: process.env.NODE_ENV === "production",
maxAge: 1000 * 60 * 60 * 24 * 365 // 1 year
}
})
);
服务器和应用程序由Apollo Stack(Apollo server,Apollo android和Apollo client)提供动力