# 配置登录授权 Scope
本文介绍几种常见社会化登录授权范围参数含义。
# Scope 简介
许多社会化登录都基于 OAuth 2.0 协议,其中 Scope 的含义是:需要请求用户授予的权限。例如,当我们希望用户授予我们他的 Github 仓库读写权限,我们在发起授权登录时,必须要在 scope
参数中加入 repo
字段。
在 Authing 控制台 (opens new window) > 连接身份源 - 社会化登录选择一个社会化登录选项卡,勾选发起授权登录时请求用户授予的权限:
# Github
Scope 参数 | 描述 |
---|---|
(no scope) | 授予对公开信息的只读访问权限(包括公共用户配置文件信息,公共仓库信息和 gist) |
repo | 授予对私有和公有仓库的完全访问权限。 这包括对代码,提交状态,仓库和组织项目,邀请,协作者,添加团队成员身份,部署状态的读 / 写访问权限,以及公开和私有仓库和组织仓库的 Webhook 读 / 写访问权限。 还授予管理用户项目的能力。 |
repo:status | 授予对公开和私有仓库提交状态的读 / 写访问权限。 仅在授予其他用户或服务对私有仓库提交状态的访问权限,而无需授予对代码的访问权限时,此作用域才是必需的。 |
repo_deployment | 授予访问公开和私有仓库的部署状态的权限。 仅在授予其他用户或服务对部署状态的访问权限,而不授予对代码的访问权限时,才需要此作用域。 |
public_repo | 仅限于对公开仓库的访问。 这包括对代码,提交状态,仓库项目,协作者以及公开仓库和组织的部署状态的读 / 写访问。 对公开仓库加注星标也需要此 scope。 |
repo:invite | 授予接受 / 拒绝邀请从而在仓库上进行协作的能力。 仅在授予其他用户或服务邀请权限,而不授予对代码的访问权限时,才需要此作用域。 |
admin:repo_hook | 授予对公开和私有仓库中的仓库 hook 的读取,写入,ping 和删除访问权限。 repo 和 public_repo 授权范围会授予对仓库的完全访问权限,包括仓库 hook。 使用 admin:repo_hook 授权范围将授权限制为仓库 hook。 |
write:repo_hook | 授予对公开或私有仓库中的 hook 的读取,写入和 ping 的访问权限。 |
read:repo_hook | 授予对公开或私有仓库中的 hook 的读取和 ping 访问权限。 |
admin:org | 全部管理组织及其团队,项目和成员的权限。 |
write:org | 对组织成员、组织项目和团队成员身份的读写访问权限。 |
read:org | 对组织成员、组织项目和团队成员身份的只读访问权限。 |
admin:public_key | 全部管理公钥的权限 |
write:public_key | 新建、查看公钥列表、详情的权限 |
read:public_key | 查看公钥列表、详情的权限 |
admin:org_hook | 授予对组织 hook 的读取,写入,ping 和删除访问权限。 注意:OAuth 令牌仅能对那些由 OAuth 应用创建的组织 hook 执行操作。 个人访问令牌只能在用户自己创建的组织 hook 上执行这些操作。 |
gist | 授予对 gist 的写权限 |
notifications | 授予: * 用户通知的读权限 * 将 threads 标记为已读的权限 * 对仓库进行 watch 和 unwatch 的权限 * 读 / 写和删除 thread 订阅的权限 |
user | 授予对用户资料的读写权限。注意此 scope 包含了 user:email 和 user:follow 。 |
read:user | 授予对用户资料的读取权限 |
user:email | 授予对用户 email 地址的读取权限 |
user:follow | 授予对用户 unfollow 其他用户的权限 |
delete_repo | 授予删除用户可管理的仓库的权限 |
write:discussion | 授予读 / 写团队讨论的权限 |
read:discussion | 授予团队讨论的只读权限 |
write:packages | 授予访问权限以在 GitHub Packages 中上传或发布软件包。 有关更多信息,请参见 GitHub 帮助文档 (opens new window)中的“发布软件包”。 |
read:packages | 授予访问权限以从 GitHub Packages 中下载或安装软件包。 有关更多信息,请参阅 GitHub 帮助文档 (opens new window)中的“安装软件包”。 |
delete:packages | 授予访问权限以从 GitHub Packages 中删除软件包。 有关更多信息,请参阅 GitHub 帮助文档 (opens new window)中的“删除软件包”。 |
admin:gpg_key | 管理 GPG 密钥的全部权限 |
write:gpg_key | 新建、查看 GPG 密钥列表、详情的权限 |
read:gpg_key | 查看 GPG 密钥列表、详情的权限 |
workflow | 授予添加和更新 GitHub Actions 工作流文件的能力。 如果同一仓库中的另一个分支上存在相同的文件(具有相同的路径和内容),则可以在没有此作用域的情况下提交工作流文件。 |
# 微信移动端网页
Scope 名称 | 描述 |
---|---|
snsapi_base | 授予通过 code 换取 access_token、refresh_token 和已授权 scope 的能力 |
snsapi_userinfo | 获取用户个人信息的权限 |
snsapi_login | 仅用于 PC 端扫码登录 |
其中 snsapi_base 属于基础接口,若应用已拥有其它 scope 权限,则默认拥有 snsapi_base 的权限。使用 snsapi_base 可以让移动端网页授权绕过跳转授权登录页请求用户授权的动作,直接跳转第三方网页带上授权临时票据(code),但会使得用户已授权作用域(scope)仅为 snsapi_base,从而导致无法获取到需要用户授权才允许获得的数据和基础功能。
使用 snsapi_base 会跳过用户的确权点击,后续使用 code 换取 access_token,用 access_token 也能够换取到用户信息。
# 新浪微博
Scope 参数 | 描述 |
---|---|
all | 请求下列所有 scope 权限 |
用户的联系邮箱,接口文档 (opens new window) | |
direct_messages_write | 私信发送接口,接口文档 (opens new window) |
direct_messages_read | 私信读取接口,接口文档 (opens new window) |
invitation_write | 邀请发送接口,接口文档 (opens new window) |
friendships_groups_read | 好友分组读取接口组,接口文档 (opens new window) |
friendships_groups_write | 好友分组写入接口组,接口文档 (opens new window) |
statuses_to_me_read | 定向微博读取接口组,接口文档 (opens new window) |
follow_app_official_microblog | 关注应用官方微博,该参数不对应具体接口,只需在应用控制台填写官方帐号即可。填写的路径:我的应用-选择自己的应用-应用信息-基本信息-官方运营账号(默认值是应用开发者帐号) |
Scope 参数 | 描述 |
---|---|
get_user_info | 获取登录用户的昵称、头像、性别,接口文档 (opens new window) |
list_photo | 获取用户 QQ 空间相册中的照片列表,接口文档 (opens new window) |
add_album | 在用户的空间相册里,创建一个新的个人相册,接口文档 (opens new window) |
upload_pic | 上传一张照片到 QQ 空间相册,接口文档 (opens new window) |
list_album | 获取用户 QQ 空间相册列表,接口文档 (opens new window) |
get_vip_rich_info | 获取 QQ 会员的高级信息,接口文档 (opens new window) |
get_vip_info | 获取 QQ 会员的基本信息,接口文档 (opens new window) |
# 接下来你可能需要:
刷新 Github、微信等三方的 token:
Authing - Node/JavaScript← 使用百度账号登录 配置自定义社会化登录 →