nodejs怎样通过jsonp来实现单点登录Demo

这次给大家带来nodejs怎样通过jsonp来实现单点登录demo,nodejs通过jsonp来实现单点登录demo的注意事项有哪些,下面就是实战案例,一起来看一下。

说明:使用redis作为session的存储方式
使用引入sso服务器中的动态js地址来获取cookie
应用服务器获取单点服务器提供的特殊标识比如sessionId或其他后,
通过标识直接去往redis中去查询,或是提交(通过rpc)给单点服务器去查询获取登录信息结果

服务器代码示例

const Koa = require('koa');const Router = require('koa-router');const bodyParser = require('koa-bodyparser');const app = new Koa(); const router = new Router(); app.use(bodyParser());//====session s=====var session = require('koa-generic-session');var redisStore = require('koa-redis');app.keys = ['keys', 'c29tZSBzZWNyZXQgaHVycg'];app.use(session({//配置session    store: redisStore({}),    cookie: {        path: '/',        httpOnly: true,        maxAge: 1 * 60 * 60 * 1000,        rewrite: true,        signed: true    }}));//====session e=====router.get('/login', function* (next) {//登录页面     this.session=null;//删除cookie    this.body=`    

登录后复制       `;}).post(‘/login’, function* (next) {//提交登录数据     var sinfo = JSON.stringify(this.request.body);//0){        this.body=`var kosid=’${this.sessionId}’;`;//示例写入sessionId,也就是存入到redis的key    }else{         this.body=`window.location.href=”http://sso.com/login”;`;    }});app.use(router.routes()).use(router.allowedMethods());app.listen(8087);

应用代码示例:

const Koa = require('koa');const Router = require('koa-router');const bodyParser = require('koa-bodyparser');const app = new Koa(); const router = new Router(); app.use(bodyParser());//====session s=====可以直接用普通session app.keys = ['c29tZSBzZWNyZXQgaHVycg%3D%3D'];var CONFIG = {    key: 'koa:sess', /** (string) cookie key (default is koa:sess) */    maxAge: 2000, /** (number) maxAge in ms (default is 1 days) */    overwrite: true, /** (boolean) can overwrite or not (default true) */    httpOnly: true, /** (boolean) httpOnly or not (default true) */    signed: true, /** (boolean) signed or not (default true) */};app.use(session(CONFIG, app));//====session e=====/*//====session s===== 或者一样吧var session = require('koa-generic-session');var redisStore = require('koa-redis');app.keys = ['keys', 'c29tZSBzZWNyZXQgaHVycg'];app.use(session({//配置session    store: redisStore({}),    cookie: {        path: '/',        httpOnly: true,        maxAge: 1 * 60 * 60 * 1000,        rewrite: true,        signed: true    }}));//====session e=====*/router.get('/', function* (next) {     this.body=`                                            $.cookie("sid",kosid);            if(kosid){                document.write('key:',kosid);            }else{                document.write('未登录');                            }            console.log("this",document.cookie);        `;    return;});app.use(router.routes()).use(router.allowedMethods());app.listen(8088);

登录后复制

windows系统下修改hosts文件
(一般在C:WindowsSystem32driversetc下)
添加:

127.0.0.1 sso.com127.0.0.1 testsso.com

登录后复制

浏览器访问:

http://sso.com:8087http://testsso.com:8088

登录后复制

相信看了本文案例你已经掌握了方法,更多精彩请关注【创想鸟】其它相关文章!

相关阅读:

python3与JS有什么不同

python3与JS有什么不同

python3与JS有什么不同

以上就是nodejs怎样通过jsonp来实现单点登录Demo的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2783937.html

(0)
上一篇 2025年3月8日 16:57:07
下一篇 2025年2月25日 18:46:16

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • js函数和感叹号的关系

    在javascript开发中,我们可能会遇到一些js函数,而这些js函数的前面是带有感叹号的,大家有没有想过,加感叹号的js函数和不加感叹号的有什么不同呢!我们一起看看本篇文章的讲述吧! 如果在function之前加上感叹号 (!) 会怎么…

    2025年3月8日
    200
  • vue.js如何获取当前元素的文字信息

    本文主要和大家分享一篇vue.js获得当前元素的文字信息方法,具有很好的参考价值,希望能帮助到大家。 1、获得当前点击的内容 登录后复制      1. 关于公众号使用问题       当我点击这个li标签的时候,我想要获得span里面的文…

    编程技术 2025年3月8日
    200
  • nodejs如何使用http模块编写上传图片接口测试客户端

    这次给大家带来nodejs如何使用http模块编写上传图片接口测试客户端,nodejs使用http模块编写上传图片接口测试客户端的注意事项有哪些,下面就是实战案例,一起来看一下。 搭个简易上传测试服务器 比如:python flask写简单…

    编程技术 2025年3月8日
    200
  • 用JS做的点击复制效果

    这次给大家带来用js做的点击复制效果,用js做的点击复制效果注意事项有哪些,下面就是实战案例,一起来看一下。 原理:模拟通过全选表单内的textarea数据调用浏览器Copy命令实现复制 示例 nbsp;html>         复…

    编程技术 2025年3月8日
    200
  • js的随机字符串正则方法([A~Z],[a~z],[0~9])

    这次给大家带来js的随机字符串正则方法([a~z],[a~z],[0~9]),js的随机字符串正则方法([a~z],[a~z],[0~9])注意事项有哪些,下面就是实战案例,一起来看一下。 function ranNum(l) {    r…

    编程技术 2025年3月8日
    200
  • 细说什么是js中的事件冒泡和事件捕获以及事件委托

    谈起javascript的 事件,事件冒泡、事件捕获、事件委托这三个话题,无论是面试还是在平时的javascript的开发中,都很难避免,不太熟悉javascript中的这些事件的同学,我们一起来看看本篇文章吧! 事件流   JavaScr…

    2025年3月8日 编程技术
    200
  • JavaScript继承基础强化笔记分享

    出于安全考虑,本地类和宿主类不能继承,其他都可以继承。ecmascript并没有严格的定义抽象类,但是存在一些不允许使用的类。子类将继承超类的所有属性和方法,包括构造函数及方法的实现。记住,所有属性和方法都是公用的,因此子类可直接访问这些方…

    编程技术 2025年3月8日
    200
  • 如何使用js-xlsx之单元格样式

    这次给大家带来如何使用js-xlsx之单元格样式,使用js-xlsx之单元格样式的注意事项有哪些,下面就是实战案例,一起来看一下。 下载xlsx-style npm install xlsx-style xlsx-style核心模块 在  …

    编程技术 2025年3月8日
    200
  • 使用flv.js与video.js做一个视频直播效果

    这次给大家带来使用flv.js与video.js做一个视频直播效果,使用flv.js与video.js做出视频直播效果的注意事项有哪些,下面就是实战案例,一起来看一下。 环境配置 首先运行livego 安装与运行OBS 打开设置 配置流服务…

    2025年3月8日 编程技术
    200
  • JS实现贝叶斯分类器

    这次给大家带来js实现贝叶斯分类器,js实现贝叶斯分类器的注意事项有哪些,下面就是实战案例,一起来看一下。 首先放代码 function NB(data) {    this.fc = {}; //记录特征的数量 feature conut…

    2025年3月8日
    200

发表回复

登录后才能评论