AGC Auth(AGC认证服务)
·
AGC Auth(AGC认证服务)
AGC Auth = AppGallery Connect Auth,华为AGC的认证服务,Serverless用户登录组件,鸿蒙/Android应用快速实现账号登录,不用自己开发账号后端服务。
SDK包名:
@hw‑agconnect/auth(ArkTS/鸿蒙NEXT);com.huawei.agconnect:agconnect‑auth(Android)
✅支持登录方式
- 手机号(密码/短信验证码登录注册)
- 邮箱账号
- 华为账号OAuth登录
- 匿名登录
- 自有账号系统对接
- 第三方账号(微信、QQ等)
登录成功拿到:AGC User UID、accessToken、refreshToken,可以直接对接AGC云数据库CloudDB、云函数CloudFunction做权限控制。
🚀完整接入步骤(HarmonyOS NEXT ArkTS)
1. AGC控制台开通服务
- 登录 AppGallery Connect
- 你的项目 → 云开发(Serverless)→认证服务 →立即开通,设置数据存储区域(国内选CN)
- 在认证方式里,打开需要的登录方式(手机号、华为账号等)
- 项目设置 → 下载配置文件 agconnect‑services.json,放到项目
entry/src/main/resources/rawfile/目录
2. 安装SDK依赖(entry目录执行)
ohpm install @hw-agconnect/hmcore
ohpm install @hw-agconnect/auth
oh‑package.json5会自动写入依赖。
3. module.json5 添加网络权限
"requestPermissions": [
{"name": "ohos.permission.INTERNET"}
]
4. SDK初始化示例代码
import auth from '@hw-agconnect/auth';
import { rawfile } from '@kit.BasicServicesKit';
async function initAgcAuth() {
//读取rawfile下agconnect‑services.json
const file = await getContext(this).resourceManager.getRawFileContentSync("agconnect-services.json");
const jsonStr = buffer.from(file.buffer).toString();
auth.init(getContext(this), jsonStr);
await auth.setRegion(auth.Region.CN);
}
5. 常用接口示例
//获取当前登录用户
const user = auth.getCurrentUser();
if(user){
console.info("uid:", user.getUid())
}
//登出
await auth.signOut();
//获取accessToken
const tokenObj = await auth.getToken(true);
console.log(tokenObj.accessToken)
⚠️常见坑
- 403报错:
agconnect‑services.json不是最新,重新下载覆盖;签名指纹SHA256与AGC控制台不一致。 - 华为账号登录:需要额外在module.json5配置
client_id元数据,AGC项目设置复制ClientID填入。 - 模拟器收不到验证码:控制台支持测试验证码,不需要真实短信。
- 权限:必须申请
INTERNET网络权限,否则完全无法调用AGC接口。
和HMS账号服务区别
- AGC Auth:完整用户体系,保存账号、密码,生成UID,配合AGC云服务鉴权,推荐云开发项目用。
- HMS Account Kit:只拿华为账号OAuth信息,不维护账号库,需要你自己后端处理用户信息。
如果你需要,我可以直接给你一份手机号验证码登录完整ArkTS示例代码。
更多推荐
所有评论(0)