AGC Auth(AGC认证服务)

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控制台开通服务

  1. 登录 AppGallery Connect
  2. 你的项目 →云开发(Serverless)→认证服务 →立即开通,设置数据存储区域(国内选CN)
  3. 在认证方式里,打开需要的登录方式(手机号、华为账号等)
  4. 项目设置 → 下载配置文件agconnect‑services.json,放到项目entry/src/main/resources/rawfile/目录

2. 安装SDK依赖(entry目录执行)

ohpminstall@hw-agconnect/hmcore ohpminstall@hw-agconnect/auth

oh‑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)

⚠️常见坑

  1. 403报错agconnect‑services.json不是最新,重新下载覆盖;签名指纹SHA256与AGC控制台不一致。
  2. 华为账号登录:需要额外在module.json5配置client_id元数据,AGC项目设置复制ClientID填入。
  3. 模拟器收不到验证码:控制台支持测试验证码,不需要真实短信。
  4. 权限:必须申请INTERNET网络权限,否则完全无法调用AGC接口。

和HMS账号服务区别

  • AGC Auth:完整用户体系,保存账号、密码,生成UID,配合AGC云服务鉴权,推荐云开发项目用
  • HMS Account Kit:只拿华为账号OAuth信息,不维护账号库,需要你自己后端处理用户信息。

如果你需要,我可以直接给你一份手机号验证码登录完整ArkTS示例代码