0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

FCMアクセストークン取得にプロキシを使用する場合に気を付けるべきこと

Posted at

はじめに

FCMを使用したPUSH通知を行うアプリケーションを開発する際に、プロキシを使用してFCMからアクセストークンを取得するようにしたい場合に起こる影響についてまとめました。

何が問題だったのか

私の開発していたアプリケーションは様々な種類の機能を集めたもので、nodeのexpressを使用しています。FCMにアクセスしてアクセストークンを取得する処理はそのアプリケーションの中の一機能に過ぎす、通信を行っている機能は他にも複数ありました。それらの機能は、別スレッドでアクセストークン取得処理と同タイミングで実行される可能性があります。その際、それらの通信がプロキシを使いたくない通信であった場合でも、googleapisのREADMEに載っている方法でプロキシを設定していると、その設定がアクセストークン取得処理以外の通信にも影響が出てしまうといったものです。

問題のプロキシ設定方法

googleapisのREADMEでは、HTTP_PROXYという環境変数に使用するプロキシのurlを設定するといった方法が紹介されていました。しかし、HTTP_PROXYとは一般的に様々なシステムから参照されている環境変数です。環境変数に設定されている時間が、例え一瞬であったとしても大量にリクエストの来るアプリケーションが同じマシン上に存在すれば、その通信に影響が出るでしょう。

アクセストークンの取得のみに絞ってプロキシを設定できないのか

結論から言うとできませんでした。FCMのアクセストークン取得では、FCM公式リファレンスにある通りにコーディングすると、googleapisのjwtClient.authorizeというメソッドを使用し、FCMと通信します。このメソッドにプロキシを設定する引数などは無いので、結局googleapisのREADMEに載っている方法でしかプロキシは設定できないと思われます。(私は考えつきませんでしたが、ご存知の方がいれば教えてください)

最後に

この記事を見ていただいた方は、私と同じようにFCMのアクセストークン取得にプロキシを使用したいと考えてらっしゃる方がほとんどだと思いますが、その際はプロキシ設定の影響がでないようにサーバ内の通信する処理をアクセストークン取得のみにしたり、そもそもプロキシを使用しない運用に変えるなど、気をつけていただければと思います。

参考

FCM公式リファレンス
GitHub - googleapis

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?