Express
配置Authok
获取应用密钥
你需要如下信息
- Domain
- Client ID
- Client Secret
配置回调URL
配置 Logout URL
集成 Authok
安装依赖
npm install express express-openid-connect --save
配置路由
需要提供如下配置:
authRequired
- 控制是否所有路由都需要认证authokLogout
- 使用 Authok 进行注销baseURL
- 应用提供服务的URLsecret
- 用于加密会话cookie的密钥issuerBaseURL
- 对应 **应用设置** 中的域名clientID
- 对应 **应用设置** 中的Client ID.
下面是使用路由的例子:
const { auth } = require('express-openid-connect');
const config = {
authRequired: false,
authokLogout: true,
baseURL: 'http://localhost:3000',
clientID: 'YOUR_CLIENT_ID',
issuerBaseURL: 'https://YOUR_DOMAIN',
secret: 'LONG_RANDOM_STRING'
};
// auth router attaches /login, /logout, and /callback routes to the baseURL
app.use(auth(config));
// req.isAuthenticated is provided from the auth router
app.get('/', (req, res) => {
res.send(req.oidc.isAuthenticated() ? '注销' : '登录')
});
更多配置选项可参考API文档.
登录
用户可以访问 /login
进行登录. 如果你在 localhost:3000
运行项目,则登录路由为 http://localhost:3000/login
.
显示用户信息
应用需要提供被保护路由来显示用户信息.
在需要认证的路由上添加requiresAuth
中间件. 中间件会检查会话是否有效,如果无效会重定向用户到登录路由.
const { requiresAuth } = require('express-openid-connect');
app.get('/profile', requiresAuth(), (req, res) => {
res.send(JSON.stringify(req.oidc.user));
});
退登
访问 /logout
路由进行退登.