# Simple Easy Social Login – OAuth Login

Simple Easy Social Login は、WordPress サイトに高速かつ簡単なソーシャルログイン機能を追加できる、軽量でユーザーフレンドリーなプラグインです。

**Google、Facebook、LinkedIn（無料）** に加え、  
**Naver、Kakao、Line（プレミアム）** のログインをサポートしており、  
日本・韓国・中国などのアジア地域向けサイトはもちろん、ヨーロッパや南米のユーザーにも適した設計となっています。

本プラグインは、WordPress 標準のログイン／新規登録ページとスムーズに連携し、  
WooCommerce のログインおよび新規登録フォームにも対応しています。  
ソーシャルプロフィール画像は、WordPress ユーザープロフィールのアバターとして自動的に同期されます。

また、**拡張可能な Provider アーキテクチャ**を採用しており、  
必要に応じて新しい OAuth Provider を独立した Add-on プラグインとして追加することが可能です。

---

## ✨ 主な機能

- Google ログイン（無料）
- Facebook ログイン（無料）
- LinkedIn ログイン（無料）
- Naver ログイン（プレミアム）
- Kakao ログイン（プレミアム）
- Line ログイン（プレミアム）
- ユーザーアバターの自動同期
- メールアドレスによる既存 WordPress ユーザーの自動連携
- ログイン／ログアウト／新規登録後のリダイレクト URL 設定
- Provider 設定用のシンプルで分かりやすい管理画面 UI
- ショートコード対応： [seslp_social_login]
- WordPress のログイン／新規登録フォームへの自動表示
- WooCommerce ログイン／新規登録フォーム対応（オプション）
- WordPress コーディング標準に準拠した軽量構造
- 不要なデータベーステーブルを作成しません
- 新しい OAuth Provider を Add-on プラグインとして拡張可能な Provider システム

---

## 🐞 デバッグログ

SESLP には、OAuth およびソーシャルログインの問題を診断するための  
組み込みデバッグログ機能が含まれています。

詳細なログの説明は、WordPress 管理画面から確認できます：
**SESLP → Guides → Debug Log & Troubleshooting**

ログファイルの保存先：

- `/wp-content/SESLP-debug.log`
- `/wp-content/debug.log`（`WP_DEBUG_LOG` 有効時）

---

## 🔒 ユーザー作成とセキュリティ

- 新しいユーザーアカウントは、ソーシャルプロバイダーのメールアドレスに一致する既存の WordPress ユーザーが存在しない場合に**のみ**作成されます。
- ユーザー作成は以下を完全に尊重します：
  - WordPress コア設定：**設定 → 一般 → 誰でもユーザー登録ができる**
  - プラグイン設定：**自動ユーザー作成**（管理画面で無効にできます）
- ログイン成功後、プラグインは公式の WordPress `wp_login` アクションをトリガーします。これにより、ログイン試行の監視、2FA の強制、認証イベントのログ記録を行うセキュリティプラグインとの互換性が確保されます。
- 自動ユーザー作成をオフにすると、同じメールアドレスを持つ既存のアカウントを持つユーザーのみ、ソーシャルプロバイダー経由でログインできます。

---

## 🚀 インストール方法

1. プラグインを `/wp-content/plugins/simple-easy-social-login/` ディレクトリにアップロードします。
2. WordPress 管理画面の **プラグイン → インストール済みプラグイン** から有効化します。
3. **設定 → Simple Easy Social Login** に移動します。
4. 各ソーシャルログイン Provider の Client ID と Client Secret を入力します。
5. 設定を保存します。
6. フロントエンドでソーシャルログインボタンが正しく表示されることを確認します。

---

## ❓ よくある質問

### WooCommerce と一緒に使用できますか？

はい。WooCommerce のログインおよび新規登録フォームと連携します。

### WooCommerce のログインは動作しますが、リダイレクトの挙動が異なります。これは正常ですか？

はい。WooCommerce が有効な場合、ログイン後は通常 **マイアカウント** ページへリダイレクトされます。  
リダイレクト先の URL は、プラグイン設定または利用可能なフィルターでカスタマイズできます。

### WooCommerce サイトでソーシャルログインが動作しない場合、何を確認すればよいですか？

以下の点をご確認ください：

- WooCommerce が最新の安定版に更新されているか
- ソーシャルログインのプロバイダーがプラグイン設定で有効になっているか
- Client ID と Client Secret が正しく入力されているか
- リダイレクト / コールバック URL が各プロバイダーの開発者コンソールに正しく登録されているか
- カスタムログインやチェックアウトテンプレートが WooCommerce のデフォルトフックを削除していないか
- デバッグログが有効化され、`/wp-content/SESLP-debug.log` を確認しているか

### Google ログインのみ使用できますか？

はい。各 Provider は個別に有効化／無効化できます。

### プレミアムライセンスはいつ必要ですか？

**Naver、Kakao、Line** のログインを使用する場合は、プレミアムライセンスが必要です。  
Google、Facebook、LinkedIn は無料で利用できます。

### ショートコードはありますか？

はい。以下のショートコードを使用して、任意の場所にソーシャルログインボタンを表示できます。
[seslp_social_login]

### ユーザーアバターは自動で取得されますか？

はい。Google や Facebook など一部の Provider では、プロフィール画像を自動的に取得し、WordPress のアバターとして同期できます。

---

## 🖼 スクリーンショット

1. WordPress ログインページに表示されるソーシャルログインボタン（リスト表示）。
2. ログイン画面に表示されるアイコンのみのソーシャルログインボタンレイアウト。
3. ログイン後のリダイレクト設定（ダッシュボード、プロフィール、トップページ、またはカスタム URL）。
4. デバッグログ、UI レイアウトオプション、ショートコード、アンインストール設定。
5. OAuth リダイレクトルールや基本要件を説明する組み込みセットアップガイド。
6. Google OAuth 同意画面およびクライアント設定のステップバイステップガイド。
7. Google、Facebook、LinkedIn のログイン認証情報に関する管理画面設定。
8. Naver、Kakao、LINE ログインプロバイダーの管理画面設定。
9. すべての対応プロバイダーで共通して使用されるリダイレクト URI ルール。
10. デバッグログの保存場所とトラブルシューティング概要。
11. 一般的な OAuth エラー、推奨される解決策、デバッグログの確認場所。

---

## 📝 変更履歴（Changelog）

### 1.9.9

- 公開リリースに向けてスクリーンショットおよびドキュメントを最終調整
- ログインフロー、設定、ガイド、トラブルシューティングを網羅したスクリーンショット説明を追加
- ドキュメントの軽微な整理および一貫性の改善

### 1.9.8

- `SESLP_Avatar::resolve_user()` における致命的な型エラーを修正し、戻り値が `WP_User|null` になるよう改善
- アバターのフォールバック処理を改善：
  - ソーシャルプロフィール画像が存在しない、または無効な場合に WordPress のデフォルトアバターを安全に使用
  - アバター画像の破損を防止（例：LinkedIn プロフィール画像の問題）
- アバター表示に関する軽微な安定性の改善

### 1.9.7

- README にデバッグログセクションを追加
- 管理画面ガイドに詳細なデバッグログ説明を統合（多言語対応）
- ログファイルパスを統一（`/wp-content/SESLP-debug.log`）
- ドキュメント全体の整理と一貫性を改善

### 1.9.6

- 設定ページの操作性を改善
- Secret キーの表示／非表示トグルを追加
- WordPress コアスタイルとの競合を修正
- Pro / Max プラン検出ロジックを改善

### 1.9.5

- 大規模リファクタリング
- Helpers の統合および Provider 構造の改善
- 設定 UI の整理
- 安定性と保守性の向上

### 1.9.3

- ガイド（Guides）の翻訳更新
- 設定ページにショートコード表示を追加

### 1.9.2

- 内部構造の整理
- Guides ローダークラスを追加
- テンプレート構造の再編
- 設定および CSS ローダーの安定性を改善

### 1.9.1

- 管理者ガイドページを追加
- Markdown ベースの多言語ドキュメントレンダリング（Parsedown 対応）
- UI スタイルの改善

### 1.9.0

- 大規模リファクタリングの準備段階
- i18n ヘルパーの拡張
- 安全なフォーマット処理およびロギング改善

### 1.7.23

- 翻訳の更新

### 1.7.22

- 以前にログインした Provider がデバッグメッセージに表示されるよう改善

### 1.7.21

- 同一メールアドレスによる重複登録時に Provider 名をエラーメッセージに表示
- JavaScript により 10 秒後にエラーメッセージを自動的に非表示

### 1.7.19

- 同一メールアドレスによる重複アカウント作成を防止
- OAuth フローを改善：
  - `get_access_token()`
  - `get_user_info()`
  - `create_or_link_user()`

### 1.7.18

- Google Client ID / Secret フィールドのツールチップを削除
- コード構造の整理
- Line ログインボタンの「(Email required)」テキストを削除

### 1.7.17

- Line ログイン関連の問題を修正：
  - 再ログイン時の重複ユーザー作成を防止
  - `/complete-profile` ページが再表示される問題を修正
  - メールアドレス更新を許可し、「Invalid request」エラーを解消
- `SESLP_Logger` によるデバッグログの統合

### 1.7.16

- デバッグログ内のライセンスキーをマスキング（例：abc\*\*\*\*123）
- デバッグ用に `wp_options` 確認ガイドを追加
- ログ書き込み失敗時の管理者通知を追加

### 1.7.15

- デバッグログ書き込み失敗問題を修正
- WordPress のローカルタイムゾーンに基づくタイムスタンプを適用
- 設定保存時にデバッグログを追加

### 1.7.5

- 最新のセキュリティパッチを適用
- パフォーマンス最適化およびユーザー体験の改善

### 1.7.0

- ソーシャルログインボタンの同期改善
- セキュリティ強化およびバグ修正

### 1.7.3

- デバッグシステムの改善
- 専用 debug ディレクトリを追加

### 1.6.0

- Plus / Premium 選択時のライセンスキー表示ロジックを復元

### 1.5.0

- `seslp_license_type` オプションを登録
- 設定保存時に Free に戻ってしまう問題を修正

### 1.4.0

- `admin_enqueue_scripts` を使用して管理画面の `style.css` 読み込み問題を修正

### 1.3.0

- ラジオボタン UI の改善
- インライン CSS を `style.css` に移動

### 1.2.0

- ライセンスタイプ選択機能を追加（Free / Plus / Premium）
- 設定ページ UI の配置を改善

### 1.1.0

- 多言語対応および翻訳ファイル読み込み機能を追加
- 認証ロジックを改善

### 1.0.0

- 初回リリース
- Google、Facebook、Naver、Kakao、Line、Weibo のソーシャルログインを追加

---

## 🌐 外部サービス

本プラグインは、各ソーシャルログイン機能を提供するために、外部サービス（OAuth プロバイダー）と通信します。

これらのサービスは、ユーザー認証および基本的なプロフィール情報（名前、メールアドレス、プロフィール画像など）を取得するために使用されます。

### 利用される外部サービス

- **Google**  
  - 認証およびユーザー情報の取得  
  - 利用規約: https://policies.google.com/terms  
  - プライバシーポリシー: https://policies.google.com/privacy  

- **Facebook (Meta)**  
  - 認証およびユーザー情報の取得  
  - 利用規約: https://www.facebook.com/legal/terms  
  - プライバシーポリシー: https://www.facebook.com/privacy/policy  

- **LinkedIn**  
  - 認証およびユーザー情報の取得  
  - 利用規約: https://www.linkedin.com/legal/user-agreement  
  - プライバシーポリシー: https://www.linkedin.com/legal/privacy-policy  

- **Naver**  
  - 認証およびユーザー情報の取得  
  - 利用規約: https://policy.naver.com/rules/service.html  
  - プライバシーポリシー: https://policy.naver.com/rules/privacy.html  

- **Kakao**  
  - 認証およびユーザー情報の取得  
  - 利用規約: https://www.kakao.com/policy/terms  
  - プライバシーポリシー: https://www.kakao.com/policy/privacy  

- **LINE**  
  - 認証およびユーザー情報の取得  
  - 利用規約: https://terms.line.me/line_terms/  
  - プライバシーポリシー: https://privacy.line.me/line_privacy/  

### 送信されるデータ

ログイン処理中に、以下の情報が各プロバイダーへ送信される場合があります：

- OAuth 認証リクエスト（Client ID、リダイレクト URI）
- 認可コード（authorization code）およびアクセストークン取得リクエスト
- ユーザー情報取得リクエスト

これらの通信は、ユーザーがログインボタンをクリックした場合にのみ実行されます。

本プラグインは、ユーザーの明示的な操作なしに外部サービスへデータを送信することはありません。

---

## 📄 ライセンス

GPLv2 or later  
https://www.gnu.org/licenses/gpl-2.0.html
