摘要
目标:利用 oidc-provider 框架,搭建自己的 oidc 授权服务器。
这是第一步,先建立 Koa 服务。
框架选型
因为 OIDC 协议基于 OAuth2.0,所以 OIDC 的实现同样基于 OAuth2.0,所以我们可以在 OAuth2.0 网站上找到很多成熟的框架用来实现自己的授权服务器。
比如我比较习惯于使用 Koa 做 Web 服务,所以就选择了支持 Koa 的 oidc-provider。
具体步骤
一、准备 Node 执行环境
略
二、创建 Koa2 服务
步骤参考 Koa官网。
新建文件夹 hello-oidc
创建文件 hello-oidc/package.json
npm init .
安装 koa
npm init koa -S
创建 app.js 文件,并编辑内容为
const Koa = require('koa');const app = new Koa();let server;(async () => { server = app.listen(9000, () => { console.log(`Server start on http://localhost:9000.`); })})().catch((err) => { if (server && server.listening) server.close(); console.error(err); process.exitCode = 1;});
至此,Koa 服务已经建立,下一步补充需要用到的服务能力。
三、配置引擎模板
因为 OIDC 授权服务器中,包含了如 登录、授权等几个页面,为了能够更方便的呈现,这里可以选择一个服务端渲染模板工具,比如 ejs。
安装 ejs 依赖
npm i koa-ejs -S
配置 ejs 模板目录
在 app.js 中,新增依赖
const path = require('path');const render = require(koa-ejs)
然后配置模板目录
// 配置模板引擎render(app, { cache: false, viewExt: 'ejs', layout: '_layout', root: path.join(__dirname, 'views'),});
四、配置跨域
OIDC 要接受其他服务的跨域请求,这里可以提前配置好 CORS。
安装 cors 依赖
npm i @koa/cors -S
引入 cors
const cors = require('@koa/cors');
应用 cors
app.use(cors());
五、完整代码
const path = require('path');const Koa = require('koa')const cors = require('@koa/cors');const render = require('koa-ejs');// 创建 Koa 实例const app = new Koa()// 配置跨域app.use(cors());// 配置模板引擎render(app, { cache: false, viewExt: 'ejs', layout: '_layout', root: path.join(__dirname, 'views'),});// 启动 KOA 服务let server;(async () => { server = app.listen(9000, () => { console.log(`Server start on http://localhost:9000.`); })})().catch((err) => { if (server && server.listening) server.close(); console.error(err); process.exitCode = 1;});
TODO
创建 KOA 服务 ✔
Oidc-Provider 的基础配置
Oidc-Provider 的高级配置
配置 Https 服务
使用 MidwayJS 搭建资源服务器
推荐本站淘宝优惠价购买喜欢的宝贝:
本文链接:https://hqyman.cn/post/3901.html 非本站原创文章欢迎转载,原创文章需保留本站地址!
休息一下~~