From 24aa3ac0108ea35323b872e740ee9cae769f3cb3 Mon Sep 17 00:00:00 2001 From: =?utf8?q?=E5=88=98=E6=B4=AA=E9=9D=92?= Date: Sat, 6 Mar 2021 16:42:48 +0800 Subject: [PATCH] =?utf8?q?docs:=20=E6=9B=B4=E6=96=B0=E5=AE=9E=E6=96=BD?= =?utf8?q?=E8=AF=B4=E6=98=8E=E6=96=87=E6=A1=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- ...64\346\230\216\346\226\207\346\241\243.md" | 63 ++++++++++++++++++ ...56\345\210\235\345\247\213\345\214\226.md" | 29 ++++++++ ...6\345\210\235\345\247\213\345\214\226.pdf" | Bin 0 -> 43364 bytes 3 files changed, 92 insertions(+) create mode 100644 "docs/CAS\350\256\244\350\257\201\350\201\224\345\220\210\347\231\273\345\275\225\351\205\215\347\275\256\350\257\264\346\230\216\346\226\207\346\241\243.md" create mode 100644 "docs/\347\224\250\346\210\267\345\244\264\345\203\217\346\225\260\346\215\256\345\210\235\345\247\213\345\214\226.md" create mode 100644 "docs/\347\224\250\346\210\267\345\244\264\345\203\217\346\225\260\346\215\256\345\210\235\345\247\213\345\214\226.pdf" diff --git "a/docs/CAS\350\256\244\350\257\201\350\201\224\345\220\210\347\231\273\345\275\225\351\205\215\347\275\256\350\257\264\346\230\216\346\226\207\346\241\243.md" "b/docs/CAS\350\256\244\350\257\201\350\201\224\345\220\210\347\231\273\345\275\225\351\205\215\347\275\256\350\257\264\346\230\216\346\226\207\346\241\243.md" new file mode 100644 index 0000000..e7f64dc --- /dev/null +++ "b/docs/CAS\350\256\244\350\257\201\350\201\224\345\220\210\347\231\273\345\275\225\351\205\215\347\275\256\350\257\264\346\230\216\346\226\207\346\241\243.md" @@ -0,0 +1,63 @@ +# CAS 认证 联合登录配置说明文档 + + +## 联合登录的支持 + +目前,CAS 认证 对 QQ、微信、企业微信、支付宝、钉钉 等社交帐号的联合登录 + + +## 开发者帐号申请 + +* 开发者帐号申请 + +根据 各开放平台 申请开发者帐号,开通开发权限(涉及到费用) + + +* 获取对接参数 + +各开放平台下,创建应用,获取 应用ID、Secret 等对接参数(具体至官方文档了解) + +- QQ +appid、appkey + +- 微信 +appid、appsecret + +- 企业微信 +corpid、agentid、secret + +- 支付宝 +appid、应用私钥(appprivatekey)、支付宝公钥(alipaypublickey) + +- 钉钉 +appid、appsecret + + +## 配置修改 + +* 修改配置 + +修改 cas-server 下 ConfigMap cas-server-site-webapp-env 中对应的配置参数 + +- QQ +CASSERVER_FEDERATION_QQ_APPID +CASSERVER_FEDERATION_QQ_APPKEY + +- 微信 +CASSERVER_FEDERATION_OPENWEIXIN_APPID +CASSERVER_FEDERATION_OPENWEIXIN_APPSECRET + +- 企业微信 +CASSERVER_FEDERATION_WORKWEIXIN_CORPID +CASSERVER_FEDERATION_WORKWEIXIN_AGENTID +CASSERVER_FEDERATION_WORKWEIXIN_SECRET + +- 支付宝 +CASSERVER_FEDERATION_ALIPAY_APPID +CASSERVER_FEDERATION_ALIPAY_APPPRIVATEKEY +CASSERVER_FEDERATION_ALIPAY_ALIPAYPUBLICKEY + +- 钉钉 +CASSERVER_FEDERATION_DINGTALK_APPID +CASSERVER_FEDERATION_DINGTALK_APPSECRET + diff --git "a/docs/\347\224\250\346\210\267\345\244\264\345\203\217\346\225\260\346\215\256\345\210\235\345\247\213\345\214\226.md" "b/docs/\347\224\250\346\210\267\345\244\264\345\203\217\346\225\260\346\215\256\345\210\235\345\247\213\345\214\226.md" new file mode 100644 index 0000000..0086c76 --- /dev/null +++ "b/docs/\347\224\250\346\210\267\345\244\264\345\203\217\346\225\260\346\215\256\345\210\235\345\247\213\345\214\226.md" @@ -0,0 +1,29 @@ +# 用户头像数据初始化 + + +## 数据整理 + +将 用户的头像数据 进行整理,包括: + +1. 图片数据 + +2. 用户名 与 图片文件名的对应关系 + + +## 图片导入 + +将 图片数据 上传到 minio 的 portrait 目录中 + +**注意,这里的 minio 为认证授权产品里部署的 authx-minio** + + +## 用户数据更新 + +将 图片文件名 整理为 `portrait__文件名` (包括文件扩展名) + +如:`portrait__1.png`,此时 就是对应了 minio 上 portrait 目录中的 1.png 图片 + +**注意,portrait 与 文件名之间是两个 下划线** + +根据 用户名,将 整理后的 图片文件名 更新到 用户服务的数据库 user 中的 TB_B_USER 表的 IMAGE_URL + diff --git "a/docs/\347\224\250\346\210\267\345\244\264\345\203\217\346\225\260\346\215\256\345\210\235\345\247\213\345\214\226.pdf" "b/docs/\347\224\250\346\210\267\345\244\264\345\203\217\346\225\260\346\215\256\345\210\235\345\247\213\345\214\226.pdf" new file mode 100644 index 0000000000000000000000000000000000000000..6fc3f7573959f0abaf9481e9afa2458a5967dd0e GIT binary patch literal 43364 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 CUW1kZ literal 0 HcmV?d00001 -- 2.17.1