1 回答

TA贡献1817条经验 获得超14个赞
登录时候,提交用户名密码验证码给api,api收到后验证,然后返回token给前端,前端在一个合理的地方存储这个token,然后每次调用需要登录才能访问的接口,都要传这个token给后端。后端通过token知道是哪个用户,判断有效性。如果服务器端返回需要登录之类的错误码,前端就清除token引导到登录页面,重新登录。服务器端一般用redis来存储。react下,一般配合react-router,如果没有token这个值之类的,访问需要登录的页面的时候无法访问,引导到登录页面。
还有很多细入的问题,这就是个大概的方式。其实session也是大概这样的方式,session配合cookie,无感的自动完成了这些事。
可以生成jwt的token
如果是app,由于用户体验,不希望token一过期,就要重新登录,所以一般登录后会提供一个access_token和过期时间更长的refresh_token,access_token做调用资源的验证,当access_token过期后,可以通过refresh_token去验证服务器重新获得access_token和refresh_token,就不用频繁的让app用户登录了,refresh_token要存到手机的安全位置。
当然这一块存在很多安全问题需要解决,先能解决大部分就行了。就是cookie,session也是存在同样的安全问题,比如xss,csrf,重放攻击等等,接口起码的逻辑漏斗等。另外要用https。
添加回答
举报