NL OAuth2是一个基于Discourse的SSO的身份认证服务,允许应用程序使用NL用户系统进行身份验证和授权
abcd1234567890ef
(用于标识应用)secret_xyz123
(用于应用认证)重定向用户到授权页面
用户同意后获取授权码
使用授权码交换访问令牌
使用令牌获取用户信息
/oauth2/auth
参数 | 类型 | 必需 | 说明 |
---|---|---|---|
response_type | string | ✅ | 固定值: code |
client_id | string | ✅ | 应用Client ID |
redirect_uri | string | ✅ | 回调地址 |
scope | string | ⚪ | 建议: openid profile |
state | string | ⚪ | 防CSRF随机字符串 |
/oauth2/token
请求头:
grant_type
: authorization_code
code
: 授权码redirect_uri
: 回调地址grant_type
: refresh_token
refresh_token
: 刷新令牌/oauth2/userinfo
请求头:
/api/apps
响应:
/api/apps
请求体:
state
参数防止CSRF攻击state
参数错误 | HTTP状态 | 说明 | 解决方案 |
---|---|---|---|
invalid_client | 401 | Client ID/Secret错误 | 检查应用凭据 |
invalid_grant | 400 | 授权码无效/过期 | 重新获取授权码 |
invalid_redirect_uri | 400 | 回调URI不匹配 | 检查注册的URI |
access_denied | 403 | 用户拒绝授权 | 引导用户重新授权 |
unsupported_grant_type | 400 | 不支持的授权类型 | 使用正确的grant_type |
获取授权码
交换访问令牌
获取用户信息
https://conn.nodeloc.cc/oauth2/auth
openid profile
code