web-dev-qa-db-ja.com

モバイルアプリ用の電話番号ベースのデバイス認証

DeviseがRailsベースのアプリに認証を実装するための事実上の標準であることは誰もが知っています。

デフォルトでは、IDとして電子メールを使用しますが、代わりにユーザー名を使用することもできます。また、「確認可能」モジュールがあり、メールを送信し、リンクをクリックしてメールを確認することで、メールアドレスを確認できます。

私は電話番号に似たものを探していました。基本的にはメールではなくプライマリIDとして電話番号を受け入れ、認証コードをSMSメッセージとしてユーザーの番号に送信して、電話番号を確認します。 Twilioのようなものを入力し、コードを入力してユーザーに確認させます(または、生成されたリンクをクリックして、電子メールの場合と同じように確認します)。

この機能のための人気のあるデバイスモジュールがあると私が期待した理由は、ほとんどのモバイルソーシャルアプリが電話番号を受け入れて番号を確認しているように見えるためです。これが問題だと思って、このためのモジュールをオープンソース化した人がいるはずです。しかし、人気のあるものは見つかりませんでした。実際に正確に言うと、これに関して私が見つけた3つの関連リンクは次のとおりです。

それらのどれもが機能する解決策につながりません(私はdevise_sms_activableを試しましたが、Rails 4、さらに星の数が少ないことに注意しています)では機能しません)これに対する実行可能な解決策がある場合、何かが足りないのですか?このトピックはDevise開発者コミュニティで取り上げられましたか?解決策に興味がありますが、解決策がない場合は、少なくともこれがない理由についての回答をいただければ幸いです。すぐに利用できる。

[更新]

質問は少し誤解を招くかもしれないと思います。自分で作ることはできますが、車輪の再発明は好きではありません。基本的に、この質問に対する私の意図は次のとおりです。

  1. これを行うパッケージがある場合(confirmable、token_authentcatableなどのすべてのモジュールなど。Deviseモジュールでさえない可能性があり、まったく異なるものになる可能性があります)
  2. または、そのような事前に構築されたソリューションがない場合、なぜそれがないのですか。誰もがそうしているように見えるのに、なぜそのような解決策が見つからないのか理解できません。

#1または#2のいずれかに対する回答が得られたら、喜んで受け入れます。ありがとう!

15
Vlad

私は以前にそれを調べました...しかしプロジェクトの要件が変更されました...したがって、以下のすべては devise wiki にある相対リンクです

前のtutsを Twilio のようなものと組み合わせて使用​​すると、作成されたカスタム認証トークンを送信し、電子メール以外の電話番号でユーザーを認証できます。

[更新]

すでに機能しているソリューションについておっしゃっていたので、これがあなたが探しているものだと思います。 アクティブモデルOTP および このブログ投稿 これは新しく、試乗する機会がありませんでした:D

私も見つけました 二要素認証デバイス拡張

[2017年8月更新]

私が最近取り組んでいたプロジェクトに基づいて、 Tinfoil/devise-two-factor がdeviseとの本当に良い/拡張可能な統合を提供する(そして高度にカスタマイズ可能である)...内部ROTPを使用することがわかりましたgemでは、さまざまな認証方法(APP/SMS)に基づいてさまざまな長さのコードを提供し、方法ごとに許可されるさまざまなウィンドウ/ドリフトを提供できます。すべてをゼロから作成する必要はありません。 (複雑なワークフローに対してフルパワーが必要な場合に強くお勧めします)

13
a14m

私はOPです。この質問をしたので、active_model_optという宝石に出くわしました https://github.com/heapsource/active_model_otp

このgemは正確にはデバイスプラグインではありませんが、私が探していたものを正確に実行します。基本的に、ユーザーモデルに追加することで、一定期間有効なワンタイムパスワードを生成します。ワンタイムパスワードを使用して「認証」する機能も組み込まれています。

とにかく、この質問に出くわした人がこの答えが役立つと思うかもしれないことを願っています。

7
Vlad

おそらくOPが探していたものとは正確には一致しませんが、Rails中国の開発者向けに、さまざまな中国語を自動的に統合する china_sms という宝石がありますSMSサービスをRailsアプリに送信します。誰かが役立つと思う場合に備えて、ここに追加します。

https://github.com/saberma/china_sms

https://Ruby-china.org/topics/12407

3
xji