zoukankan      html  css  js  c++  java
  • SSO单点登陆和jsonp跨域请求

    单点登陆逻辑

    登录的业务流程

    拿到用户名密码,判断正确之后生成token,作为key和用户信息(value)一起保存到redis里面,然后把token返回出来在表现层再写入cookie,就算登陆成功了

    (redis还要设置过期时间)

     

    判断登陆和取用户信息:

    取出cookietoken,用它去redis里查询用户信息,如果存在就是没有过期即为登陆状态(否则需要重新登陆),同时返回用户信息

    (redis需重置下过期时间)

     jsonp跨域请求

    通过token查询用户数据:

     方案:当页面加载完成后使用jstoken的数据,使用ajax请求查询用户信息。(写一个jstoken用取得用户信息,每个页面一加载都调用这个js就好)

    问题:sso表现层查询得到用户信息,Sso.e3.com localhost:8088。但需要在商城门户(另一个表现层)的页面里显示用户信息,www.e3.com localhost:8082。使用ajax请求跨域了。这就好比一个工程里的页面不从自己的controller里取数据,要从另一个工程的controller里取数据。

    Js不可以跨域请求数据。

    什么是跨域:

    1、域名不同

    2、域名相同端口不同。

    解决js的跨域问题可以使用jsonp

    Jsonp不是新技术,跨域的解决方案。使用js的特性绕过跨域请求。Js可以跨域加载js文件。

     

    1.1 Jsonp原理

     

    1.2 Json实现

    1.2.1 客户端

    使用jQuery

     

    1.2.2 服务端

    1、接收callback参数,取回调的js的方法名。

    2、业务逻辑处理。

    3、响应结果,拼接一个js语句。

     

     

  • 相关阅读:
    前端 http协议 四大特性 web本质 -响应状态码 列表标签 表单操作 form表单 # 44 HTML
    断点传续 # 补充 mysql
    优酷系统 # 41-43
    css控制 只显示一行 强制不换行 超出用...表示
    点击返回上一页面
    jquery实现点击按钮变换背景颜色
    js,同意后,才可已点击注册按钮
    用div+css生存太极图案
    使用tp5,显示页面错误信息
    vue项目搭建步骤
  • 原文地址:https://www.cnblogs.com/fengnan/p/9498856.html
Copyright © 2011-2022 走看看