インターネットの巨人による総データ漏洩とデジタル環境での刑事訴追の時代に、ユーザーは自分自身に関する情報を残すことを恐れています。 特に、登録中であってもユーザーが個人データを入力することを望まないVPNサービスに関しては、さまざまなプラットフォームでのサービスへのアクセスは、迅速かつ不要な情報なしで行う必要があります。 「People’s VPN」をモットーにGuruVPNサービスを作成したため、ユーザーをインストールして検証する最も簡単で匿名の方法を作成することが非常に重要でした。

この記事では、さまざまなプラットフォームでユーザー認証システムを実装した経験を共有したいと思います。 この独自のソリューションにより、ユーザーの個人データを収集したり保存したりすることができなくなりました。 絶対に。
背景
最初の段階では、ユーザーが1つのデバイスからサブスクリプションを発行して支払い、すべてのデバイスでアクセスを有効にできるように、アプリケーションに従来の承認/登録システム(電子メールまたは電話)を含めることを決定しました。
形式を選択し、ドキュメントの作成を開始しましたが、ある時点で、App StoreとGoogle Playでサブスクリプションデータを結合して、両方のプラットフォームで同期できるようにする方法についての疑問が生じました。 そして、共通のサブスクリプション期間を確立するような方法でこれを行うために、さらに出力で、システムは「ユーザーデータを収集しない」という私たちの立場に矛盾しませんでした。
そのため、次の点に準拠するシステムの開発を開始しました。
- ユーザーの個人データを収集および保存しませんでした
- マルチプラットフォームベースで自動更新可能なサブスクリプションのアイデアを有効にしました
そして、私たちのチームはユニークなフォーマットを発見しました-一時トークンのシステムがデスクトップでの承認のために開発されました。
ログイン
そのような決定の秘密は何ですか?
ユーザーはスマートフォンにアプリケーションをインストールし、サブスクリプションの料金を安全かつ迅速に支払い、1つのアクションでQRコードを使用して別のデバイスで承認する必要があります。 資格情報なしでログインし、アクセスを再購入します。
ユーザーにとっての仕組み
- デスクトップにプログラムをダウンロードすると、認証画面が表示され、QRコードが表示されます。
- アプリ内サブスクリプションを使用して、App Store / Google Playからモバイルアプリをダウンロードして起動します
- モバイルアプリケーションで認証コードをスキャンまたは入力します
- 認証に成功したら、接続制御画面がロードされるのを待っています
- 接続する国を選択し、「接続」をクリックします
- 許可を取得すると、VPN接続が確立されます
仕組み
- 一次認証で、デスクトップアプリケーションは一時トークンを要求します。
- 一時トークンがデータベースに自動的に生成され、デスクトップアプリケーションに渡されます。 データのセキュリティを最大限に高めるため、トークンの有効期間は15分です。
- デスクトップアプリケーションは、メイン画面にモバイルアプリケーションのQRコードとオープントークンを表示します。
- モバイルアプリケーションはQRコードをスキャンし、ユーザーが手動で入力したコードを認識し、それをAPI要求に送信して、ユーザーのデバイスの確認を生成します。
- バインドが存在する場合、デスクトップアプリケーションは、トークンがバインドされているユーザーのサーバーに許可を要求します。APIは、問題なく認証用のIDとトークンを提供します。
したがって、非常にシンプルで、最も重要な匿名ユーザー認証スキームをシステムに実装することができました。これにより、追加のステップなしで、単一のサブスクリプションでさまざまなプラットフォームのアプリケーションにアクセスできます。
モバイルアプリストアでの仕組み。 たとえば、App Store
アプリ内購入プロセス自体については説明しません。Habréで既に多くのことを書いています。
最初の段階では、サーバーで受信とサブスクリプションのステータスがチェックされ、リクエストパラメータがチェックされます。 検証が成功すると、アプリケーションはサブスクリプションステータスとセッショントークンを返します。
チェックの検証後、アルゴリズムが開始されます。

結果
承認プロセスは非常に簡単で高速です。平均して、デスクトップへのアプリケーションのインストールと承認は数分で完了し、ユーザーの労力は最小限で済みます。 このプロジェクトでは、計画どおり、ユーザーデータの完全な匿名性を維持しながら、アプリ内購入システムをクロスプラットフォーム形式で実装することが判明しました。これは、VPNサービスにとって非常に重要な事実です。 そして何が重要なのか、プロジェクトの精神に完全に対応するような方法でプロセスを実装することができました-「人々のためのアプリケーション」。