jiafaner
V2EX  ›  编程

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

  •  
  •   jiafaner · Sep 18, 2018 · 3799 views
    This topic created in 2815 days ago, the information mentioned may be changed or developed.

    我们现在的前端程序是一个 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 里面又好像不对

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

    7 replies    2018-10-02 04:47:04 +08:00
    34C
        1
    34C  
       Sep 18, 2018   ❤️ 1
    存 sessionStorage 啊,或者 localStorage 然后加有效期字段
    jiafaner
        2
    jiafaner  
    OP
       Sep 18, 2018
    @34C 啊,存在这里面能行吗?别人复制走了怎么办

    必须 API 强制用 https 吗
    34C
        3
    34C  
       Sep 18, 2018   ❤️ 1
    @jiafaner 传统 web 项目也可以把 cookies 复制走啊,所以会话凭据(无论叫 session 还是叫 token )都是有有效期的
    34C
        4
    34C  
       Sep 18, 2018
    @jiafaner 和 https 没什么关系
    jiafaner
        5
    jiafaner  
    OP
       Sep 18, 2018
    @34C 明白了,我再搜索一下这些资料,感谢了
    xuanbg
        6
    xuanbg  
       Sep 22, 2018
    身份认证其实是后端的事情,只要它给用户在登录后发一个 token 就行了。你前端拿到 token 当然是存起来,本地存储或者 cookie 都可以。你作为前端不需要担心别人复制走冒用你的身份,后端是可以做到 token 只能给你用,别人拿走用不了的,当然这也需要你配合给点数据才可以。
    filosfino
        7
    filosfino  
       Oct 2, 2018 via iPhone
    Cookie 加 Httponly,业界标准做法
    存 localstorage 或者 sessionstorage 都可能被加载的 js 取走泄露
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   5454 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 41ms · UTC 08:54 · PVG 16:54 · LAX 01:54 · JFK 04:54
    ♥ Do have faith in what you're doing.