评论登录新增 Google OAuth 与 Telegram Login Widget
- Google:授权码流程(openid email profile),handle 优先用已验证邮箱,头像取 picture - Telegram:官方 widget 直接回传签名资料,后端按官方算法验签(secret=SHA256(bot_token),除 hash 外全字段排序比对)+ auth_date 24h 时效 - providers 列表自动按配置下发(未配置的不显示);widget 型带 bot 用户名 - 三个登录方式共用读者会话与 upsert;Telegram 走 POST 无跳转 - .env.example 补 ONE_GOOGLE_* / ONE_TELEGRAM_* 模板
This commit is contained in:
@@ -25,6 +25,15 @@ type Config struct {
|
||||
GitHubClientID string
|
||||
GitHubClientSecret string
|
||||
|
||||
// 评论区 Google 登录(OAuth 客户端凭据,Google Cloud Console 创建)
|
||||
GoogleClientID string
|
||||
GoogleClientSecret string
|
||||
|
||||
// 评论区 Telegram 登录(Login Widget):Bot 是用户名(不含 @,下发给
|
||||
// 前端 widget),Token 用于验签。两者都要,缺一该入口不开放。
|
||||
TelegramBot string
|
||||
TelegramToken string
|
||||
|
||||
// 对象存储(文件上传)。变量名与站主 .env 里的写法一致(站主已整理):
|
||||
// S3Api = R2 的 S3 API 端点(https://<账户ID>.r2.cloudflarestorage.com,
|
||||
// 控制台 R2 概览可复制),上传走它 —— 公开域名收不了上传请求
|
||||
@@ -129,6 +138,10 @@ func Load() (*Config, error) {
|
||||
// 评论区 GitHub 登录(OAuth App 凭据,站主在 GitHub 上创建后填入)
|
||||
c.GitHubClientID = getenv("ONE_GITHUB_CLIENT_ID", "")
|
||||
c.GitHubClientSecret = getenv("ONE_GITHUB_CLIENT_SECRET", "")
|
||||
c.GoogleClientID = getenv("ONE_GOOGLE_CLIENT_ID", "")
|
||||
c.GoogleClientSecret = getenv("ONE_GOOGLE_CLIENT_SECRET", "")
|
||||
c.TelegramBot = getenv("ONE_TELEGRAM_BOT", "")
|
||||
c.TelegramToken = getenv("ONE_TELEGRAM_BOT_TOKEN", "")
|
||||
|
||||
return c, nil
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user