搭建简单的 OAuth 授权服务器指南
1. 授权服务器基础
授权服务器在 OAuth 系统中扮演着关键角色。它可以在共享数据库中查找令牌值,确定令牌的发放对象及其拥有的权限。OAuth 令牌可以有不同的结构,如 JSON Web Token (JWT) 或 SAML 断言,这些令牌可以进行签名、加密或两者兼而有之,客户端在使用时无需了解令牌内部的具体内容。
在获取并存储令牌后,需要将其返回给客户端。令牌端点的响应是一个 JSON 对象,包含访问令牌的值和 token_type
指示符,告知客户端令牌的类型以及如何在受保护资源中使用它。示例代码如下:
var token_response = { access_token: access_token, token_type: 'Bearer' };
res.status(200).json(token_response);
此时,我们就拥有了一个简单但功能完整的授权服务器。它可以对客户端进行身份验证,提示用户进行授权,并使用授权码流程发放随机的承载令牌。你可以通过访问 OAuth 客户端 http://localhost:9000/
,获取令牌、批准令牌并在受保护资源中使用它来进行测试。
作为额外练习,你可以为访问令牌添加一个短的过期时间。具体操作步骤如下:
1. 存储令牌的过期时间。
2. 将 expires_in
响应参数返回给客户端。
3. 修改 protectedR