V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Ncare
V2EX  ›  程序员

前端萌新请教各位大佬一个登陆验证问题

  •  
  •   Ncare · 2017-12-15 08:59:49 +08:00 · 3008 次点击
    这是一个创建于 2295 天前的主题,其中的信息可能已经有所发展或是发生改变。

    公司目前所有系统登陆验证都基于一个 Java 写的一个单点登陆,因为本人对 Java 完全不了解,所有也不知道其具体如何实现的。所有旧系统,年代比较久远,前端都是 JSP,然后 cookie + session 这种模式.

    现在公司打算开新系统,也要基于这个登陆系统,但是我打算使用 vue 来做前端 SPA。但是登陆这块不知道怎么搞,我看网络上,vue SPA 都是基于 token 的验证的方式,

    所以不知道各位大佬有什么解决方式,既能够使用 vue 做这种前后端分离,然后又使用这套登陆系统。

    表达可能有不对地方,大致是这个意思。

    9 条回复    2019-10-10 16:48:57 +08:00
    lupkcd
        1
    lupkcd  
       2017-12-15 09:11:19 +08:00
    同等答案
    lrz0lrz
        2
    lrz0lrz  
       2017-12-15 09:46:46 +08:00
    vue 也可以使用 cookie+session 啊,原来怎么样,现在还是怎么样就行了
    chairuosen
        3
    chairuosen  
       2017-12-15 09:57:52 +08:00
    你要看单点登录实现方式是怎样的?
    1,共享二级域名 cookie 的,sso 只是往.xxx.com 写一个 cookie 再跳回来,子系统都是在.xxx.com 同一个一级域名下。
    2,回调带临时 token 的,这种就是 oauth 那一套。
    1 需要处理一下 cookie 失效的逻辑,一般都是 html 页面跳 302 到登录页,但是 ajax 接口就不能这样做了,要自己封装下,只返回数据。
    2 是完全隔离的,不用处理啥。
    whypool
        4
    whypool  
       2017-12-15 10:15:16 +08:00
    如果登陆页面是 vue 写的,那么前端需要判断一下,加个路由拦截,没登陆的全部跳转到登陆页面的路由;
    可以用 cookie 做标记,前提是 cookie 不能是 httponly,否则前端拿不到;
    如果登陆页是独立的,那就和前端没啥关系了,后端统一拦截,转发到 vue 前端路由就行,至于 ajax,请求头带 cookie 就行,失效了后端直接 redirect 到登录页面就 ok
    lupkcd
        5
    lupkcd  
       2017-12-15 11:58:28 +08:00
    @chairuosen @whypool vue 开发的时候 跑的 npm run dev 自带服务器器呀 和后端存在 cookie 跨域问题
    一般是怎么处理的?
    whypool
        6
    whypool  
       2017-12-15 12:03:41 +08:00
    @lupkcd webpack 开代理 or 后端设置跨域请求头
    cctv1005s927
        7
    cctv1005s927  
       2017-12-15 12:38:59 +08:00
    nginx 来一个 http 代理吧
    GabrielChen
        8
    GabrielChen  
       2017-12-15 13:03:04 +08:00
    nginx 反向代理或者 chrome --disable-web-security 后者比较适合你
    ivydom
        9
    ivydom  
       2019-10-10 16:48:57 +08:00
    authing 自带登录表单和各种用户管理代码,可以让开发者使用五六行代码实现认证(使用 jwt token )
    可参考:sample*authing*cn
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5137 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 09:42 · PVG 17:42 · LAX 02:42 · JFK 05:42
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.