首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

将用户添加到Firebase时,在Javascript中注册时,从Go admin后端获取消息令牌

基础概念

Firebase 是 Google 提供的一个全面的移动和 Web 应用开发平台。它提供了后端服务如数据库、身份验证、实时数据库等。在 Firebase 中,消息令牌(也称为 FCM 令牌)用于向移动设备发送推送通知。

相关优势

  • 实时通信:Firebase 提供了实时数据库和云消息传递服务,可以轻松实现实时通信。
  • 身份验证:Firebase 提供了多种身份验证方法,包括电子邮件/密码、Google 登录等。
  • 简化开发:Firebase 提供了许多现成的 API 和 SDK,简化了开发过程。

类型

  • FCM 令牌:用于向移动设备发送推送通知。
  • 身份验证令牌:用于验证用户身份。

应用场景

  • 移动应用推送通知
  • 实时数据同步
  • 用户身份验证

问题描述

在 JavaScript 中注册 Firebase 时,从 Go admin 后端获取消息令牌。

原因

在 Firebase 中,消息令牌是由客户端生成的,通常在移动设备或浏览器中生成。后端服务器需要获取这个令牌以便发送推送通知。

解决方案

1. 客户端生成 FCM 令牌

首先,在客户端(JavaScript)中生成 FCM 令牌:

代码语言:txt
复制
import firebase from 'firebase/app';
import 'firebase/messaging';

if (!firebase.apps.length) {
  firebase.initializeApp({
    apiKey: "YOUR_API_KEY",
    projectId: "YOUR_PROJECT_ID",
    appId: "YOUR_APP_ID",
    messagingSenderId: "YOUR_MESSAGING_SENDER_ID",
    appId: "YOUR_APP_ID"
  });
}

const messaging = firebase.messaging();

messaging.requestPermission()
  .then(() => {
    console.log('Notification permission granted.');
    return messaging.getToken();
  })
  .then((token) => {
    console.log('FCM Token:', token);
    // 将 token 发送到后端
    sendTokenToServer(token);
  })
  .catch((err) => {
    console.log('Unable to get permission to notify.', err);
  });

function sendTokenToServer(token) {
  fetch('/api/save-token', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json'
    },
    body: JSON.stringify({ token })
  })
  .then(response => response.json())
  .then(data => {
    console.log('Token saved:', data);
  })
  .catch((error) => {
    console.error('Error saving token:', error);
  });
}

2. 后端(Go)接收并保存 FCM 令牌

在后端(Go)中接收并保存 FCM 令牌:

代码语言:txt
复制
package main

import (
  "encoding/json"
  "log"
  "net/http"
)

type TokenRequest struct {
  Token string `json:"token"`
}

func saveTokenHandler(w http.ResponseWriter, r *http.Request) {
  var req TokenRequest
  err := json.NewDecoder(r.Body).Decode(&req)
  if err != nil {
    http.Error(w, err.Error(), http.StatusBadRequest)
    return
  }

  token := req.Token
  // 保存 token 到数据库或进行其他处理
  log.Println("Saved token:", token)

  w.WriteHeader(http.StatusOK)
  w.Write([]byte("Token saved successfully"))
}

func main() {
  http.HandleFunc("/api/save-token", saveTokenHandler)
  log.Fatal(http.ListenAndServe(":8080", nil))
}

参考链接

通过上述步骤,你可以在 JavaScript 中生成 FCM 令牌,并将其发送到 Go 后端进行保存和处理。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

React Native推送通知:完整的操作指南

推送通知是应用程序发送到已安装该应用的用户消息或警报。...可以Node.js服务器通过 firebase-admin 和 node-apn 向注册的移动设备发送远程通知 Expo推送通知和其他云服务 FCM 和 APNs 都是特定平台的原生推送通知服务。...获取推送通知令牌 记住,要在React Native应用程序中使用推送通知,我们首先需要注册应用程序以获取推送通知令牌。在这里,我们将使用Expo的通知API。...一旦你打开应用,你可以控制台上看到Expo推送通知令牌。 当新用户打开应用时,这个独特的令牌将会被生成,所以我们可以服务器存储这些令牌,并以编程方式向所有注册的设备发送通知。...() .then(token => expoPushTokensApi.register(token)); }, []); 现在,我们正在用户发送去获取令牌,同时也将用户信息发送到我们的后端服务器

1.3K10

Android Firebase 服务简介

二、开发 云消息传递(Firebase Cloud Messaging) 可以通过后台服务向用户推送消息,对于即时通讯等用例,一条消息可以最大 4KB 的负载传送至客户端应用。... Firebase console ,可通过项目获取测试结果,包括日志、视频和屏幕截图。...如果当用户搜索相关内容已安装应用,则他们可以直接搜索结果启动应用。 如果用户还未安装应用,则将在搜索结果显示安装卡片。...,Analytics),然后点击Get Started来连接Firebase并且将相应的代码添加到你的app。...Firebase服务端的配置 首先为APP建立个云后端,登陆[FireBase官网]https://www.firebase.com/,注册账号,注册完后,会有这个提示。 ?

22.7K90
  • 我是如何找到Donald Daters应用数据库漏洞的

    静态分析 1)首先,我APK文件我的手机导入到了电脑上。你可以使用这款软件来帮助你完成这个过程。 2)APK是一个ZIP文件,解压缩并提取DEX文件。...3)你可以使用jadx这款工具,提取的DEX文件获取反编译的源码。 4)使用apktool获取应用程序的resources文件。...该应用仅上线了几小时,因此只有1607个注册用户和128个rooms。 有趣的是,其中最长的一个讨论(62条消息),来自于应用程序开发者之间。...有了这个POC,我可以查看所有私人消息 - 用户信息 - 或是删除:消息用户,甚至是整个数据库的内容。https://t.co/7doErhzYdY: ?...时间线 1)Twitter上发布 Hi@FoxNews和@realDonaldTrump支持者,我可以5分钟内获取所有注册用户的:名称 - 照片 - 个人消息 - 令牌等。

    6K20

    架构分析到代码,Amazon无人超市是这样诞生的|附教程

    你能不能在一天半的时间里,零着手搭建出一个基本的Amazon Go无人超市系统?让客户可以体验无缝衔接的购物体验? 当然可以。 有个四人小组就在最新的一次黑客马拉松,完成了这样一次挑战。...实际应用,自己用TensorFlow搭一个人脸识别应用可能比用这种API更好,但是36小hackathon嘛,API挺好用的。...△ 经理App 经理App是iPad版的,能将新用户添加到Kairos API和Firebase数据库,也能显示店里顾客的列表和货物的库存清单。...商店经理能用这个App操作Firebase数据库、查看数据库发生的变化。 这个App还能追踪店内当前的所有用户,并获取他们的姓名和照片。当用户离开,这个系统也能实时更新店内当前用户列表。 ?...顾客要进店,需要先上传自己的照片,注册成为可以无人店内购物的用户。图片通过API上传到Imgur(一家国外图片分享网站),并与用户名相关联。 EZShop会根据这个照片来识别顾客。

    7K61

    36小,造一个亚马逊无人商店 | 实战教程+代码

    你能不能在一天半的时间里,零着手搭建出一个基本的Amazon Go无人超市系统?让客户可以体验无缝衔接的购物体验? 当然可以。 有个四人小组就在最新的一次黑客马拉松,完成了这样一次挑战。...实际应用,自己用TensorFlow搭一个人脸识别应用可能比用这种API更好,但是36小hackathon嘛,API挺好用的。...△ 经理App 经理App是iPad版的,能将新用户添加到Kairos API和Firebase数据库,也能显示店里顾客的列表和货物的库存清单。...商店经理能用这个App操作Firebase数据库、查看数据库发生的变化。 这个App还能追踪店内当前的所有用户,并获取他们的姓名和照片。当用户离开,这个系统也能实时更新店内当前用户列表。 ?...顾客要进店,需要先上传自己的照片,注册成为可以无人店内购物的用户。图片通过API上传到Imgur(一家国外图片分享网站),并与用户名相关联。 EZShop会根据这个照片来识别顾客。

    5.3K100

    【译】我是如何学习任意前端框架的

    在这篇文章,我向你展示我学习前端框架的经验以及这些框架如何彼此相似的。 每次你决定学习前端框架,你定会反复听到这些术语(组件,路由和管理状态/状态管理)。...,例如,一旦用户点击进入,就向端点API获取结果数据 学会如何展示单条数据或一组数据 给你插入的数据添加点样式 构建你的布局 主要的详细信息:列表结果结果的每个项目的链接添加到项目详细页面 了解如何数据从母版页传递到详细信息页...你学到: 路由守卫:某些页面只允许通过身份验证的用户(访问) 如何发送并保存JWT(JSON Web令牌)以发出需要经过身份验证的用户请求 3.CRUD App 增删查改的应用程序是本节中最受欢迎的前端应用程序...,你可以使用本地存储或者使用在线服务(如Firebase)来构建此应用程序,甚至将它与后端框架集成在一起。...尝试为后端框架添加auth功能 4.聊天应用 在前面的章节,对后端的所有请求都是单向的,你管理应用程序状态没有问题。

    3.6K10

    集成推送那点事-友盟Mob-FlutterFCM

    } 很多时候我们都希望,即使用户当前未使用 App,或者说当前的 App 处于被杀死的状态,后台推送消息依然想被前台接收。...若使用一键清理,应用的channel进程被清除,接收不到推送。通过接入托管弹窗功能,可有效防止以上情况,增加推送消息的送达率。...当然 Google 也为我们提供了一键式的配置,但是尴尬的是,我尝试失败了,不过也算是一种方式,具体文章内容如下: Firebase 添加到您的 Android 项目 这里为了偷个懒,直接一张图展示了...3.3 FCM 消息处理 app build 完善下依赖: // FCM implementation 'com.google.firebase:firebase-analytics:17.4.4...,蛮简单的,这里说下几个点吧: 由于项目需求设置以用户名为别名,所以也涉及到了添加别名这个操作,而在这里则是本地维护了一个状态,避免多次设置重复别名; 其次需求是接收到消息推送执行刷新操作,所以我在这里直接接收到推送消息后通过

    11.4K41

    浏览器存储访问令牌的最佳实践

    更常见的是,web应用程序逻辑浏览器运行。 与服务器获取所有内容不同,应用程序浏览器运行JavaScript后端API获取数据,并相应地更新web应用程序呈现。...问题是,如何在JavaScript获取这样的访问令牌?当您获取一个令牌,应用程序应该在哪里存储令牌,以便在需要将其添加到请求?...它都会存储获取令牌并手动添加到请求。...这意味着为了获得令牌,OAuth代理需要进行身份验证。因此,攻击者需要获取客户端凭据才能成功获取令牌JavaScript运行静默流而没有客户端凭据失败。...OAuth代理解密cookie并将令牌添加到上游API。cookie属性确保浏览器仅cookie添加到HTTPS请求,以确保它们传输过程是安全的。由于令牌是加密的,它们休息也是安全的。

    24310

    APP消息推送方案调研

    开发者通过第三方推送服务提供商信息直接下发给需要的设备,第三方推送服务提供商与设备建立一条长连接通道,并且消息路由到APP(图中的设备1与设备2),对于像设备3这种无网络连接或是没有成功建立长连接通道的设备...)三种基本的推送方式:Push、Pull 和 SMS本质: App服务器更新的信息推送给用户,即App获取服务器信息,再推送给用户App服务器获取最新消息的基本方式(原理)有3种:Push、Pull...hl=zh-cn#send-messages-to-multiple-devicesFirebase Admin SDK中发送消息使用的registrationTokens是设备端生成的Firebase...这些令牌是设备与FCM服务交互的唯一标识符。以下是获取这些令牌的步骤:集成Firebase SDK:首先,确保你的应用已经集成了Firebase SDK。...获取Firebase实例ID:应用,使用Firebase实例ID服务来获取一个唯一的标识符。这个服务会处理令牌的生成和刷新。

    26710

    Go 语言安全编程系列(一):CSRF 攻击防护

    1、工作原理 Go Web 编程,我们可以基于第三方 gorilla/csrf 包避免 CSRF 攻击,和 Laravel 框架一样,这也是一个基于 HTTP 中间件避免 CSRF 攻击的解决方案...HTML 表单 首先是 HTML 表单,csrf.Protect 中间件使用起来非常简单,你只需要在启动 Web 服务器将其应用到路由器上即可,然后渲染表单视图传递带有令牌信息的 csrf.TemplateField...:w.Header.Set("X-CSRF-Token", token) // 这在发送 JSON 响应到客户端或者前端 JavaScript 框架很有用 } // 提交注册表单处理器 func...JavaScript 应用 csrf.Protect 中间件还适用于前后端分离的应用,此时后端数据以接口方式提供给前端,不再有视图模板的渲染,设置中间件的方式不变,但是传递 CSRF 令牌给客户端的方式要调整...http.ListenAndServe(":8000", r) } func GetUser(w http.ResponseWriter, r *http.Request) { // 路由参数读取用户

    4.3K41

    2023 Google 开发者大会:Firebase技术探索与实践:hello world 到更快捷、更经济的最佳实践

    构建,你可以使用Google的很多后端架构,以此来加速应用的开发,比如你可以FireBase中使用Cloud Firestore,Extensions,App Check,Cloud Function...举个例子 当你Firebase想对新用户进行身份验证,使用JavaScript可以这样写 Auth.auth().addStateDidChangeListener { (auth, user)...可以 Google 的 CDN 添加库,也可以使用 npm 本地安装它们,然后将它们打包到应用程序。... Firebase Web 应用添加到 Firebase 项目 我们在前面已经创建了一个Firebase项目,但还没有与我们的前端应用绑定起来, 下面我们需要在项目中注册一个应用来绑定我们的应用 首先在...用户”选项卡,我们应该会看到刚刚输入的用于登录应用程序的帐户信息。

    41860

    FireBase 亲密接触

    数据存储为 JSON,以毫秒速度跨连接设备同步,当您的应用处于离线状态可以使用该数据。 Storage:直接 Firebase 客户端 SDK 存储和检索用户生成的内容,如图片、音频和视频。...AdWords: AdWords 自动链接至您在 Firebase Analytics 定义的用户区段。改进广告目标并优化您的广告系列效果。...2) Firebase 添加到 Android 应用 新建项目之后,你会在左上角看到你项目名称,我新建的项目是 Game2048。...包名可以 Modile 目录下的 build.gradle 中找到 ? 我们可以使用 gradle 来获取获取签名,双击有变选项卡的 signingReport 生成签名。 ?...在运行结束之后,我们需要从 log 获取 SHA1。 ? ? 3)“google-services.json”文件移至 Android 应用模块的根目录 ?

    15.9K00

    FCM---Android系统级推送---你还在用第三方推送?

    通过替换 FirebaseMessagingService.onMessageReceived 方法,您可以根据收到的消息执行操作,并获取消息数据: ?...这些服务器从一个应用服务器获取消息,并将其发送至设备上运行的客户端应用。Google 为 HTTP 和 XMPP 提供连接服务器。 2、一台应用服务器,您必须在您的环境实现它。...hl=zh-cn 要对某个下游消息进行寻址或"确定其目标",应用服务器需要将 to 设置为接收客户端应用的注册令牌。...单一设备和设备群组消息传递需要该令牌。请注意,注册令牌必须保密。...通知 要发送通知,可设置 notification 键并针对通知消息用户可见部分设置必要的预定义键选项集。 例如,这是 IM 应用的 JSON 格式的通知消息

    12.8K30

    OAuth 详解 什么是OAuth 2.0 隐式流, 已经不推荐了吗?

    传统上,授权代码流程在为访问令牌交换授权代码使用客户端密码,但没有办法 JavaScript 应用程序包含客户端密码并使其保持秘密。...OAuth 交换和后端内部的令牌管理,从不将其暴露给 JavaScript 前端,并避免 JavaScript 管理令牌的所有固有风险。...这些函数添加到您刚刚创建的标签。...使用授权码获取访问令牌 此应用程序需要验证该state值是否与它在开始生成的值相匹配,然后授权代码交换为访问令牌。为此,我们需要添加更多辅助函数。...,如果是则显示给用户 检查授权服务器是否返回授权码,并将其交换为访问令牌令牌端点发送 POST 请求,其中包括code_verifier它在上一步创建的参数 更新 UI 以指示错误消息或显示返回的访问令牌

    28440

    分享一篇详尽的关于如何在 JavaScript 实现刷新令牌的指南

    刷新令牌具有较长的生命周期,用于原始访问令牌过期后获取新的访问令牌。 当访问令牌过期,客户端刷新令牌发送到服务器,然后服务器验证刷新令牌并生成新的访问令牌。...此外,刷新令牌还为服务器提供了一种撤销用户访问权限的方法,而无需用户重新进行身份验证。通过使刷新令牌无效,服务器可以阻止用户获取新的访问令牌,从而有效地将他们系统中注销。...客户端将令牌存储本地存储或作为仅 HTTP 的安全 cookie。 客户端每个访问受保护资源的请求中发送访问令牌。 当访问令牌过期,客户端刷新令牌发送到认证服务器以获取新的访问令牌。...调用 invalidateRefreshToken 函数,它会客户端存储检索刷新令牌并将其删除。然后它向服务器发出获取请求以使令牌无效。服务器应该有一个监听此请求的路由,如前面的示例所示。...总的来说,在身份验证过程中加入刷新令牌可以极大地改善用户体验并提高 Web 应用程序的安全性。通过本指南,您现在应该具备 JavaScript 应用程序实现刷新令牌所需的知识和工具。

    33330

    lnmp - 登录技术方案设计与实现

    Cookie + Session 登录在 B/S 系统,登录功能通常都是基于 Cookie 来实现的。当用户登录成功后,一般会将登录状态记录到 Session 。...要实现服务端对客户端的登录信息进行验证都,需要在客户端保存一些信息(SessionId),并要求客户端之后的每次请求携带它们。...3、服务器端响应这个 HTTP 请求,并通过 Set-Cookie 头信息, SessionId 写入 Cookie 。...cookice后续校验流程获取cookice后续的访问就可以直接使用 Cookie 进行身份验证了1、用户访问 www.stark.com/console 页面,会自动带上第一次登录写入的 Cookie...3、服务器端 Token 返回给客户端,由客户端存储Header头信息里。后续页面访问1、用户访问 www.stark.com/login ,带上第一次登录获取的 Token。

    13797

    CloudBluePrint-Chapter 1.7 : 云上应用技术架构-函数计算、Serverless、小程序

    FaaS和Serverless事件驱动场景中表现出色,因为它们可以轻松地被事件触发,如API调用、数据库更新或消息队列。 轻量级应用:用户希望获得轻量级、便捷的体验,无需下载或安装单独的应用程序。...这可能导致锁定厂商,使得不进行重大修改的情况下难以函数迁移到不同的提供商之间。 调试和监控:与传统基于服务器的应用程序相比,无服务器环境调试和监控函数运行更具挑战性。...决定是否特定用例中使用函数计算,需要考虑这些限制,并在这些限制可能带来挑战时探索替代解决方案。...Go Microsoft Azure Azure Functions 事件驱动,无服务器,支持多种触发器 实时流分析,数据处理,IoT后端 C#, JavaScript, F#, Java, PowerShell...例如,用户小程序中上传图片,可以通过函数计算进行实时的图片处理,如压缩、裁剪等,并将处理后的图片保存到云存储

    29630
    领券