我正在客户端(Android应用)上实施OAuth 2流程。客户端是我们的应用程序,它与可信服务器通信。这里没有第三方。
当用户登录时,我使用客户端ID和密码从服务器获取授权代码,最终获得访问令牌。
我有应用程序中存储的访问令牌以及刷新令牌和特定范围的到期时间,例如' X'。
现在我们正在为应用添加新功能,但服务器要求我发送范围' Y'从服务器访问该功能的资源。
我的问题是
我是否需要告诉服务器该用户需要一个范围' Y' ?如果是,我该怎么办?我只是有一个accessstoken& amp;刷新范围的标记' X'。服务器是否需要公开一个服务,该服务接受我当前的accessstoken和新范围并返回一个新的accessstoken作为范围' X' &安培; ' Y' ?我迷路了吗?
在客户端,我假设一个accesstoken应映射到多个范围。
答案 0 :(得分:0)
请参阅规范here
授权和令牌端点允许客户端使用“范围”请求参数指定访问请求的范围。
e.g server may have scope : view_my_picture delete_my_picture create_entry_in_album
grant_type=<e.gclient_credentials>&client_id=<yourApp>&client_secret=<secret>&scope=view_my_picture
服务器可以提供所有请求的权限或修改后的列表(例如,因为用户拒绝了某些权限):
如果发布的访问令牌范围与客户端请求的范围不同,授权服务器必须包含“范围”响应参数,以通知客户端授予的实际范围。