前提:用户已经经过登录验证这个环节。问题:那么用户再向服务端获取自己私有的数据时,如何来验证他的身份呢?(备注:后端用的express框架)
人生最曼妙的风景,竟是内心的淡定与从容!
使用session 或者 json web token
雷雷
session,把用户id写入session验证成功时req.session.user = user;
req.session.user = user;
session!session可以存在服务器内存或者redis这样的缓存里。有成熟的第三方session库,其中session可以存在redis/数据库/本地。你可以这样,将session存到redis中:
var session = require('express-session'); var RedisStore = require('connect-redis')(session); app.use(session({ store: new RedisStore({ host: CONF.REDIS_URL(), port: 6379 }), secret: 'keyboard cat', resave: false, saveUninitialized: false, cookie: {maxAge: 14400000} }));
用sessionID做一个token,每次请求都检查这个token
和后台协商,调接口的时候,然后后台去验证,他的身份
用户验证通过之后会在后台保存一定的信息来避免后期重复验证,以前常用的方法是 Session,Session 是基于 Cookie 的,后来逐渐发展了 Token 方式,使用 Token 来代替 Cookie 中的 Seesion-Id,作为后端判断登录用户的依据,再然后出现了 JWT(JSON Web Token)。
不过话说回来,如果确实存在非常重要需要特别谨慎的操作,应该会有二次验证,比如付款的随机短信密码,以及各种安全 Token (或随机密码) App 等。最简单的就是在登录一定时间之后要求再次输入密码确认进行高安全性操作,比如管理员删除重要数据之类的操作。
使用session 或者 json web token
雷雷
session,把用户id写入session
验证成功时
req.session.user = user;
session!
session可以存在服务器内存或者redis这样的缓存里。
有成熟的第三方session库,其中session可以存在redis/数据库/本地。
你可以这样,将session存到redis中:
用sessionID做一个token,每次请求都检查这个token
和后台协商,调接口的时候,然后后台去验证,他的身份
用户验证通过之后会在后台保存一定的信息来避免后期重复验证,以前常用的方法是 Session,Session 是基于 Cookie 的,后来逐渐发展了 Token 方式,使用 Token 来代替 Cookie 中的 Seesion-Id,作为后端判断登录用户的依据,再然后出现了 JWT(JSON Web Token)。
不过话说回来,如果确实存在非常重要需要特别谨慎的操作,应该会有二次验证,比如付款的随机短信密码,以及各种安全 Token (或随机密码) App 等。最简单的就是在登录一定时间之后要求再次输入密码确认进行高安全性操作,比如管理员删除重要数据之类的操作。