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

如何在Flutter中结合Strapi实现Facebook登录并创建用户?

Flutter + Strapi Facebook 登录集成(已获取Facebook Token后)

前提:先完成Strapi端Facebook Provider配置

确保你已经在Strapi后台的Settings > Users & Permissions Plugin > Providers中开启Facebook服务,填入从Facebook开发者平台获取的Client ID和Client Secret,同时保证回调URL(Strapi默认是http://你的Strapi域名/api/auth/facebook/callback)与Facebook后台配置的一致。

核心操作:用Facebook Access Token调用Strapi认证接口

Strapi提供了直接通过第三方OAuth Token换取自身用户会话的接口,会自动完成用户创建(若不存在)或登录操作,无需前端跳转授权流程。

1. 构造请求参数

向Strapi的/api/auth/facebook/callback接口发送POST请求,参数包含:

  • access_token:Flutter端获取到的Facebook用户授权Token
  • provider:固定值为facebook

2. Flutter端代码示例(基于http包)

import 'package:http/http.dart' as http;
import 'dart:convert';
import 'package:shared_preferences/shared_preferences.dart';

Future<void> syncStrapiUser(String facebookAccessToken) async {
  final strapiAuthUrl = Uri.parse('http://你的Strapi域名/api/auth/facebook/callback');
  
  final response = await http.post(
    strapiAuthUrl,
    headers: {'Content-Type': 'application/json'},
    body: jsonEncode({
      'access_token': facebookAccessToken,
      'provider': 'facebook'
    }),
  );

  if (response.statusCode == 200) {
    final authData = jsonDecode(response.body);
    final strapiJwt = authData['jwt'];
    final strapiUser = authData['user'];

    // 将Strapi的JWT存入本地,后续接口请求用该Token授权
    final prefs = await SharedPreferences.getInstance();
    await prefs.setString('strapi_jwt', strapiJwt);
    
    print('用户同步成功:${strapiUser['username']} / ${strapiUser['email']}');
  } else {
    // 错误处理:如Token过期、Strapi配置有误等
    print('同步失败:${response.body}');
  }
}

3. 接口逻辑说明

  • Strapi会自动向Facebook服务器验证传入的Token有效性
  • 若Facebook对应的用户在Strapi中不存在,会自动创建新用户,并同步Facebook的头像、邮箱、姓名等基础字段
  • 若用户已存在,直接返回该用户的会话信息

常见问题排查

  • 400错误:检查Facebook Token是否过期,或Strapi后台Facebook Provider的Client ID/Secret是否与Facebook开发者平台一致
  • 字段同步异常:可在Strapi后台的Users & Permissions Plugin > Providers > Facebook中,修改Attributes Mapping配置自定义同步字段

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 08:28:11