Skip to main content

Express

配置Authok

获取应用密钥

你需要如下信息

  • Domain
  • Client ID
  • Client Secret

配置回调URL

配置 Logout URL

集成 Authok

安装依赖

npm install express express-openid-connect --save

配置路由

需要提供如下配置:

  • authRequired - 控制是否所有路由都需要认证
  • authokLogout - 使用 Authok 进行注销
  • baseURL - 应用提供服务的URL
  • secret - 用于加密会话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 路由进行退登.