前端项目怎么进行身份认证?

2018-09-18 16:45:13 +08:00
 jiafaner

我们现在的前端程序是一个 Vue 的项目,分成两部分,一部分是 Member,另一部分是 Admin

我们现在的 Admin 的认证是这样弄的:

一个 SPA 的 VUE 项目,跑在 /admin 这个 url 上面,但无论是 /admin/feature1 还是 /admin/feature2,不管是哪一种 URL 都由后台的 JAVA 程序提前拦截一下 URL,如果没有权限或者没有登录,就跳转到 /login

登录的时候还是用的 session

现在做到 Member 部分了,需求里要求 Member 部分要能够在浏览器里面运行,也要能够打包到 Cordova 里面,按架构的设计,是通过一个 token 保护着 API,这里我就有点迷糊了,因为按架构的设计,就没有 Session 了

Boss 让我做一个包装,所有 ajax 都要带上 Token,如果 Token 没有,就在前端跳转到登录页,登录成功的话服务器返给我一个 Token

那我把这个 Token 存到哪里呢?存到 Cookie 里面又好像不对

这种单独的前端项目怎么进行身份认证啊

3339 次点击
所在节点    编程
7 条回复
34C
2018-09-18 16:47:20 +08:00
存 sessionStorage 啊,或者 localStorage 然后加有效期字段
jiafaner
2018-09-18 16:50:24 +08:00
@34C 啊,存在这里面能行吗?别人复制走了怎么办

必须 API 强制用 https 吗
34C
2018-09-18 16:53:07 +08:00
@jiafaner 传统 web 项目也可以把 cookies 复制走啊,所以会话凭据(无论叫 session 还是叫 token )都是有有效期的
34C
2018-09-18 16:53:26 +08:00
@jiafaner 和 https 没什么关系
jiafaner
2018-09-18 16:58:11 +08:00
@34C 明白了,我再搜索一下这些资料,感谢了
xuanbg
2018-09-22 22:59:10 +08:00
身份认证其实是后端的事情,只要它给用户在登录后发一个 token 就行了。你前端拿到 token 当然是存起来,本地存储或者 cookie 都可以。你作为前端不需要担心别人复制走冒用你的身份,后端是可以做到 token 只能给你用,别人拿走用不了的,当然这也需要你配合给点数据才可以。
YaphetYin
2018-10-02 04:47:04 +08:00
Cookie 加 Httponly,业界标准做法
存 localstorage 或者 sessionstorage 都可能被加载的 js 取走泄露

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/490507

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX