前言
NodeBB社区平台是建立在Node.js平台上的开源论坛软件,它的优点是高性能,易扩展,支持插件,目前被众多的网站、企业等使用。nodebb-plugin-sso-mixer是一款NodeBB的单点登录插件,它能够实现NodeBB与mixin网络的单点登录。
简介
nodebb-plugin-sso-mixer是一款nodebb论坛的单点登录插件,通过该插件实现了NodeBB与mixin网络的单点登录,用户可以通过Mixin授权登录网络,同时实现在NodeBB平台登录和注册,极大降低了用户的注册和登录成本。
安装
使用npm安装
npm install nodebb-plugin-sso-mixer
配置
- 在mixin网络上创建应用,并且获取app_id和app_secret。
- 在NodeBB管理员界面中打开“Sso”选项卡,并进行如下配置:
- Enbale--勾选,表示启用单点登录。
- 其他字段的具体填写如下:
Settings | Description |
---|---|
Name | 显示在登录按钮上的名称。 |
Icon | 图标 |
App ID | mixin app id |
App Secret | mixin app secret |
Scope | mixin授权的作用范围 |
oAuth2 Authorize URL | mixin的oAuth授权页面 |
oAuth2 Token URL | 用户授权成功后回调的URL |
User ID Path | mixin授权成功后获取用户id的路径 |
Email Address Path | 同上,获取邮箱路径 |
Log in | 是否在登录页面显示单点登录按钮 |
Log out | 是否在退出页面显示单点退出按钮 |
实践
用户授权
- 在自己开发的应用里,使用mixin.com的授权地址:
https://mixin.one/oauth/authorize?client_id=<app_id>&scope=mixin:account:read&response_type=code&state=12345678
- 得到code后,拼接成如下地址:
https://mixin.one/oauth/token?client_id=<app_id>&code=<code>&client_secret=<app_secret>&grant_type=authorization_code
- 发起post请求,获取access_token、refresh_token、expires_at等参数,进行存储。
在NodeBB使用
在NodeBB中使用该插件,要进行如下操作:
- 在NodeBB中安装该插件。
- 在NodeBB后台配置中填写app_id和app_secret。
- 配置下Login和Logout是否显示mixin网络的按钮。
代码示例:
const nm = require('nodebb-plugin-sso-mixer'); nm.appId = "xxxx" // 这里填写自己的mixin app_id nm.appSecret = "xxxx" // 填写自己的app secret nm.setRoutes(app.router, middleware, controllers);
结束语
nodebb-plugin-sso-mixer是一款非常好用的NodeBB的单点登录插件,能够很方便的实现mixin网络的授权登录,同时也为NodeBB的用户登录和注册提供了便捷性。对于使用NodeBB平台的网站或企业,值得选择该插件使用。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6005630081e8991b448e0d4f