Laravel5.5でWebでもスマホアプリでもアクセスできるサーバを開発しています。
通常スマホアプリの認証はどのようにすべきなのか一般的な考え方を教えてください。
Passportを入れてPasswordタイプでTokenを払い出すのが一般的なのかとも考えていましたがご意見をお願いします。
また、WebではScoialiteを用いてGoogleアカウント認証を構築したのですが、スマホでも同様に構築できるのでしょうか?
Passportを用いたTokenで認証している場合に処理がうまく併用して利用できるのでしょうか?
要約すると
(1)スマホアプリの認証は普通どのように行うのが良いでしょうか?
(2)また、その場合にスマホアプリでGoogleアカウント認証を利用する場合はどのようになるのでしょうか?
というのが質問になります。
全体的な感覚がよくわかっていません。意見やアドバイスをお願いします。
よろしくお願いします。
気になる質問をクリップする
クリップした質問は、後からいつでもマイページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
下記のような質問は推奨されていません。
- 質問になっていない投稿
- スパムや攻撃的な表現を用いた投稿
適切な質問に修正を依頼しましょう。
回答2件
1
ベストアンサー
SocialiteはOAuthクライアント。
PassportはOAuthサーバー。
LaravelからGoogle認証する場合
Laravel:クライアント
Google:サーバー
の関係。
Socialiteを使う。
スマホアプリからLaravelの認証
スマホアプリ:クライアント
Laravel:サーバー
Passportを使う。
スマホアプリからGoogle認証
スマホアプリ:クライアント
Google:サーバー
Laravelは関係ない。
Laravelのユーザー情報とGoogleのユーザー情報を関連付けるのは自分で作る所。
スマホアプリからがGoogle認証だけならPassport使わずにもっとシンプルに api_token
でもいい。
ドキュメントのどこにも書いてないはずだけどLaravelデフォルトはTokenGuardを使う設定。
https://github.com/laravel/framework/blob/5.5/src/Illuminate/Auth/TokenGuard.php
- Laravelでユーザー登録した時点でランダムな api_token を生成、usersテーブルに保存。
- Google認証して google_id みたいなものを保存。
- スマホアプリからGoogle認証して取得した google_id を使って api_token を取得するAPIを作っておく。(セキュリティ考えるとここはもう少し厳密に)
後はこの api_token を使えばいい。
投稿2017/12/24 09:03
総合スコア10189
1
どちらの質問もセキュリティポリシーによるので、回答は難しいと思いますよ。
セキュリティポリシーはアプリの性質で決定されるべきなので、まずは同じような性質を持つアプリがどのようなセキュリティ設計になっているか研究してみてはいかがでしょうか?
追記
Laravel、認証、スマホアプリと興味のあるキーワードだらけな質問なので、回答をもらえるような質問に修正してもらいたいのですが、以下の点を整理しないと回答しにくいと思います。
以下のどの話なのでしょうか?
・スマホアプリの認証はどのようにすべきなのか?というポリシーに近いところの話
・Scoialite を用いて Token を発行/検証する実装の話
・Scoialite を使用した認証システムと Passport を併用する話
・そもそもサーバ側の話ではなく、端末側の実装の話
私はポリシーの話と捉えましたが、どうもセキュリティポリシーとかセキュリティ設計とかそういったものへの理解は無いようなので、そちら方面の話ではないように思います。
実装の話なのであれば、どのような機能要件があり、既存がどのような形で実装されているか提示すれば、回答を得られると思います。
投稿2017/12/23 09:47
編集2017/12/24 02:54
退会済みユーザー
総合スコア0
下記のような回答は推奨されていません。
- 質問の回答になっていない投稿
- スパムや攻撃的な表現を用いた投稿
このような回答には修正を依頼しましょう。
こちらの質問が複数のユーザーから「過去の低評価」という指摘を受けました。
回答へのコメント

退会済みユーザー
2017/12/23 10:48

退会済みユーザー
2017/12/23 11:09
関連した質問
意見交換
受付中
Wi-Fi接続後に任意のページを表示する方法
回答2
クリップ0
更新
2023/04/02
Q&A
解決済
Webアプリケーションのログイン画面のセキュリティについて
回答2
クリップ10
更新
2023/02/15
Q&A
受付中
MySQL Workbenchを用いてAWSのRDSへの接続ができない
回答3
クリップ0
更新
2023/04/01
Q&A
解決済
ドメイン名の末尾にドットをつけたURLの挙動について
回答2
クリップ2
更新
2023/03/08
Q&A
解決済
nginxをリバースプロキシとして利用する場合の設定について
回答1
クリップ0
更新
2023/03/30
意見交換
受付中
AIによる影響について
回答25
クリップ5
更新
2023/03/30
Q&A
解決済
JSON形式でのデータで「名前と値の組み合わせ」の適切な名称は何でしょうか?
回答2
クリップ0
更新
2023/04/01
意見交換
クローズ
高校生何を作ればいいのか
回答21
クリップ0
更新
2023/03/19
同じタグがついた質問を見る
Laravel 5は、PHPフレームワークLaravelの最新バージョンで、2014年11月に発表予定です。ディレクトリ構造がが現行版より大幅に変更されるほか、メソッドインジェクションやFormRequestの利用が可能になります。
下記のような回答は推奨されていません。
このような回答には修正を依頼しましょう。
2017/12/24 09:51