You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于Appwrite与Flutter实现手机号+密码登录的可行性咨询

用Appwrite实现手机号+密码创建会话(Flutter)

可以实现,Appwrite支持以手机号作为身份标识结合密码的认证方式,无需依赖验证码流程,具体实现步骤如下:

1. 创建手机号+密码关联的用户

调用Appwrite Account SDK的create方法,传入带国家码的手机号、密码及其他可选信息(如用户名)即可创建用户:

import 'package:appwrite/appwrite.dart';

// 初始化Appwrite客户端
final client = Client()
    .setEndpoint('https://[你的Appwrite端点]/v1')
    .setProject('[你的项目ID]');

final account = Account(client);

Future<void> createPhonePasswordUser() async {
  try {
    final user = await account.create(
      userId: ID.unique(), // 生成唯一用户ID
      phone: '+8613800138000', // 必须带完整国家/地区代码
      password: 'your_secure_password_here',
      name: '可选的用户昵称',
    );
    print('用户创建成功,ID: ${user.$id}');
  } on AppwriteException catch (e) {
    print('创建失败: ${e.message}');
  }
}

2. 通过手机号+密码创建会话

用户创建完成后,调用createSession方法,将带国家码的手机号传入email参数位置,配合密码即可完成登录并创建会话:

Future<void> loginWithPhoneAndPassword() async {
  try {
    final session = await account.createSession(
      email: '+8613800138000', // 传入创建用户时的手机号(带国家码)
      password: 'your_secure_password_here',
    );
    print('会话创建成功,ID: ${session.$id}');
    // 会话创建后即可访问应用受限区域
  } on AppwriteException catch (e) {
    print('登录失败: ${e.message}');
  }
}

注意事项

  • 手机号必须包含完整的国家/地区代码(如+86、+1),否则会触发格式错误。
  • 需在Appwrite控制台的「Authentication > Settings」中开启Phone Provider,确保手机号认证功能可用。
  • 密码需符合项目设置的密码策略(默认要求至少8位字符,可在控制台调整)。

内容的提问来源于stack exchange,提问作者nb13

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 10:25:15