Authorization Code Flow实现及Code参数获取方法咨询
先在WSO2 IS端完成配置
- 登录WSO2 IS管理控制台,新建OAuth2应用时必须勾选Authorization Code授权类型,填写和应用后端一致的回调URL(比如
http://localhost:8080/callback),保存后记录生成的client_id和client_secret。 - 给应用配置所需权限:要么让关联的用户角色拥有
internal_user_mgt_create这类scope的权限,要么直接在应用的允许scope列表中添加目标权限。
Authorization Code的获取方式
当用户需要执行创建用户等权限操作时,引导用户跳转到WSO2 IS的授权端点,构造的跳转URL示例如下:
https://localhost:9443/oauth2/authorize?response_type=code&client_id=你的客户端ID&redirect_uri=你的回调URL&scope=internal_user_mgt_create&state=随机字符串
- 其中
state是你自定义的随机字符串,用于防范CSRF攻击,回调时会原样返回,需验证一致性。
用户在WSO2 IS登录页完成认证后,会自动重定向到你配置的回调URL,此时URL的查询参数中会携带code(授权码)和state,比如:
http://localhost:8080/callback?code=AUTH_CODE_VALUE&state=你之前生成的随机串
你的应用后端直接从请求中提取code参数即可。
用Authorization Code换取Access Token
拿到code后,后端发起POST请求到WSO2 IS的令牌接口https://localhost:9443/t/carbon.super/oauth2/token,以表单格式传递以下参数:
grant_type=authorization_code client_id=你的客户端ID client_secret=你的客户端密钥 code=刚获取的授权码 redirect_uri=你的回调URL
请求成功后会返回包含access_token的JSON响应,后续即可用该令牌调用WSO2 SCIM2.0 API执行创建用户等操作。
关键注意事项
- 授权码
code仅能使用一次,过期或失效后需重新引导用户走授权流程。 - 回调URL必须与WSO2 IS应用配置中的值完全一致,否则无法正常返回授权码。
- 生产环境务必使用HTTPS协议,避免敏感参数明文传输。
内容的提问来源于stack exchange,提问作者ffff
相关产品推荐
相关产品推荐

