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目录执行)
ohpminstall@hw-agconnect/hmcore ohpminstall@hw-agconnect/authoh‑package.json5会自动写入依赖。
3. module.json5 添加网络权限
"requestPermissions":[{"name":"ohos.permission.INTERNET"}]4. SDK初始化示例代码
importauthfrom'@hw-agconnect/auth';import{rawfile}from'@kit.BasicServicesKit';asyncfunctioninitAgcAuth(){//读取rawfile下agconnect‑services.jsonconstfile=awaitgetContext(this).resourceManager.getRawFileContentSync("agconnect-services.json");constjsonStr=buffer.from(file.buffer).toString();auth.init(getContext(this),jsonStr);awaitauth.setRegion(auth.Region.CN);}5. 常用接口示例
//获取当前登录用户constuser=auth.getCurrentUser();if(user){console.info("uid:",user.getUid())}//登出awaitauth.signOut();//获取accessTokenconsttokenObj=awaitauth.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示例代码。
