希望github登录能获取到用户名和头像 #4116
Unanswered
BiFangKNT
asked this question in
Self Hosting | 私有化部署
Replies: 1 comment 2 replies
-
我们的接入在OAuth scope 上与 官方Github 接入示例 一致,理论上代码是没问题的。 lobe-chat/src/libs/next-auth/sso-providers/github.ts Lines 7 to 27 in 4711da7 |
Beta Was this translation helpful? Give feedback.
2 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
数据库版,github登录,只授权邮箱只读权限,目前只能获取邮箱地址作为用户名,且头像无法获取。理论上GitHub 用户名、头像是公开信息,不需要额外授权也能获取的。
参考说明如下:
使用 GitHub App 获取用户名的流程
当用户通过 GitHub App 登录时,你可以通过 OAuth 授权流程获取安装令牌(Installation Access Token),然后使用此令牌来访问与安装相关的信息,其中可能包括用户的 GitHub 用户名。
具体步骤
用户授权并安装 GitHub App:
installation_id
。你需要使用该installation_id
获取访问令牌。使用
installation_id
获取安装访问令牌:在这一步,你的应用会收到一个
access_token
,这个令牌可以用于后续的 API 请求。获取用户信息:
access_token
来获取用户的公共信息,包括用户名和头像。这个 API 返回用户的公开信息,其中包含 GitHub 用户名、用户 ID、头像等,格式如下:
需要注意的权限
虽然你只授权了“读取电子邮件”的权限,但 GitHub App 在安装过程中,可能会默认允许访问用户的公开信息,包括用户名和头像。只要你的应用安装在用户的账户上,使用安装访问令牌可以访问
/user
端点来获取这些信息。总结
即使你只授权了电子邮件读取权限,GitHub App 的安装访问令牌仍然允许你访问用户的基本公共信息,包括用户名和头像。你可以在用户安装 GitHub App 后,通过调用 GitHub 的
/user
API 来获取用户的用户名、ID 和头像等基本信息。这样无需增加其他权限。Beta Was this translation helpful? Give feedback.
All reactions