请教一个 OAuth2.0 的问题~

2017-12-21 12:07:07 +08:00
 CoderGeek
在写一个开放平台 针对三方 ,需要权限精确到每个接口 比如 get /xxxxx/xxx post /xxx/xx
用 OAuth2.0 做了对三方的认证 用客户端模式( client credentials ) clinet_id 和 client_secret
认证通过后 根据 Scope 访问的权限验证 URL,我看 ali 和 qiniu 都是用签名 ,微信和新浪
还返回 openId 啥的 ,我这种对企业的 API 需要做成这样吗 。
我现在是 只要 access_token 通过 scope 通过 既可调用 比如查看某个用户
get /user/1/info 或者 get /userinfo?userid={userid}

是我对 OAuth2.0 的理解错了吗 希望大家给点意见 看的晕
1546 次点击
所在节点    程序员
5 条回复
owenliang
2017-12-21 13:01:28 +08:00
我语文写的不好
dong3580
2017-12-21 13:06:11 +08:00
看起来当年没白研究。。。
你不用管它们的,oauth2 授权流程规范看下图,这样下来就算是,考虑安全的话再加个 refresh token:

https://assets.digitalocean.com/articles/oauth/abstract_flow.png
CoderGeek
2017-12-21 13:08:55 +08:00
@dong3580 我有加 refresh token 包括给第三方指定 IP 地址 做 IP 和请求次数限制
CoderGeek
2017-12-21 13:13:02 +08:00
申请 access_token POST /oauth2/token
名称 描述 类型 可为空
scope 申请的权限范围,可选项 默认为 basic String Y
client_secret 第三方用户唯一凭证密钥,即 app_secret String N
client_id 第三方用户唯一凭证,即 app_id String N
grant_type 获取 access_token 填写 client_credential String N

返回格式: { "access_token": "948ad78157cf1b96a147b83b589c5d9a", "refresh_token": "91671e25b0bf077108fce003de322f56", "success": true, "token_type": "bearer", "expires_in": 3050 }

参数说明 名称 描述
access_token 获取到的令牌
refresh_token 更新令牌
expires_in access_token 有效时间 单位 秒
token_type 默认返回


更新 access_token POST /oauth2/token

名称 描述 类型 可为空
grant_type 获取 access_token 填写 refresh_token String N
scope 申请的权限范围,可选项 默认为 basic String Y
refresh_token 更新令牌 String N

返回格式: { "access_token": "948ad78157cf1b96a147b83b589c5d9a", "refresh_token": "91671e25b0bf077108fce003de322f56", "success": true, "token_type": "bearer", "expires_in": 3050 }

参数说明 名称 描述
access_token 获取到的凭证 refresh_token 刷新凭证
expires_in access_token 有效时间 单位 秒
token_type 默认返回
CoderGeek
2017-12-21 13:14:19 +08:00
@dong3580
如下 主要是 我想看看别人怎么作开放平台接口的 可能他们的功能太复杂了
我不需要那么多 我看阿里有些开放 api 还只要在请求上加一个 appcode 就通过验证了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/416495

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX