Beego と OAuth2 を使用したサードパーティ ログインの実装
インターネットの急速な発展に伴い、サードパーティのログインはオンライン生活に不可欠な部分になりました。サードパーティ ログインは、より便利、高速、安全なログイン方法をユーザーに提供し、従来の登録ログイン方法よりも人気があります。現在、市場に出回っているサードパーティ ログインには、主に QQ、WeChat、Weibo などの大規模なソーシャル プラットフォームが含まれています。サードパーティのログイン機能を迅速に実装するにはどうすればよいですか?この記事では、Beego と OAuth2 を使用してサードパーティのログイン機能を実装する方法を紹介します。
1. Beego の概要
Beego は、オープンソースの高速 Go プログラミング フレームワークです。柔軟性と拡張性が高く、多数のツールとライブラリを提供します。 Beego は、開発者が Web アプリケーションを迅速に構築できるように支援し、自動ルート管理、テンプレート システム、静的ファイルの提供などの重要な機能を提供します。
2. OAuth2 プロトコルの概要
OAuth2 は、パスワードやその他の機密情報を第三者に共有することなく、ユーザーが自分に代わって動作するように他のアプリケーションを承認できるようにする承認フレームワーク プロトコルです。 - パーティーサービス。このプロトコルは、リソース所有者、リソース サーバー、クライアント、認証サーバーの 4 つの役割を定義します。このうち、リソース所有者はアクセス権を持つユーザーを指し、リソースサーバーは情報リソースをホストするサーバーを指し、クライアントは保護されたリソースへのアクセスを要求するソフトウェアプログラムを指し、認証サーバーはクライアントの認証を指します。 ID と、保護されたリソースやサービスへのアクセスの承認。
3. Beego と OAuth2 を使用してサードパーティ ログインを実装する
- Beego プロジェクトを作成する
まず、ローカル用の Beego プロジェクトを作成する必要があります。開発とテスト。次のコマンドを使用します (最初に Beego をインストールする必要があります):
bee new thirdpartylogin
- 必要なライブラリをインストールします
github などの必要なライブラリをいくつかインストールする必要があります。 com/astaxie /beego
および github.com/astaxie/beego/orm
は、次のコマンドを使用してインストールできます:
go get github.com/astaxie/beego go get github.com/astaxie/beego/orm
- データベースの作成
us ユーザー情報とサードパーティのログイン情報を保存するデータベースを作成する必要があります。 MySQL または PostgreSQL データベースを使用できます。この記事では、MySQL データベースを使用します。ユーザー テーブルとサードパーティ ログイン テーブルを作成する SQL ステートメントは次のとおりです。
CREATE TABLE `user` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT, `name` varchar(64) NOT NULL, `password` varchar(128) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; CREATE TABLE `oauth` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT, `user_id` int(11) unsigned NOT NULL, `provider` varchar(64) NOT NULL, `provider_user_id` varchar(64) NOT NULL, `access_token` varchar(128) NOT NULL, `refresh_token` varchar(128) NOT NULL, `expire_at` int(11) unsigned NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
- サードパーティ ログインの構成
サードパーティ ログインを使用する必要があります。認証用。現在、QQ、WeChat、Weibo などの大規模なソーシャル プラットフォームを含む、さまざまなサードパーティのログイン方法が市場に出回っています。 QQ ログインを例にして説明します。
まず、QQ インターネット オープン プラットフォーム (https://connect.qq.com/) にアプリケーションを登録して、App ID
と App Key## を取得する必要があります。 #。次に、次のコードを Beego プロジェクトに追加してユーザーの承認を取得する必要があります。
func QQLogin(c *beego.Controller) { var state = c.GetString("state") var oauth = conf.GetQQOAuthConfig(state) authURL := oauth.AuthCodeURL(state) c.Redirect(http.StatusTemporaryRedirect, authURL) }
state パラメーターを使用してユーザー リクエスト
を識別します。 oauth オブジェクト QQ ログインに必要な構成情報が含まれています。
AuthCodeURL メソッドを使用して認証アドレスを生成し、ユーザーを認証ページにリダイレクトします。
func QQLoginCallback(c *beego.Controller) { var state = c.GetString("state") var code = c.GetString("code") var oauth = conf.GetQQOAuthConfig(state) token, err := oauth.Exchange(context.TODO(), code) if err != nil { log.Println(err) c.Abort("500") } data, err := fetchQQUserInfo(token.AccessToken) if err != nil { log.Println(err) c.Abort("500") } openid := data.GetString("openid") if openid == "" { log.Println("openid is blank") c.Abort("500") } account := models.GetAccountByProvider("qq", openid) if account != nil { _ = models.UpdateAccountAccessToken(account, token.AccessToken) c.Redirect(http.StatusTemporaryRedirect, "/") } else { err := models.CreateAccount("qq", openid, token.AccessToken) if err != nil { log.Println(err) c.Abort("500") } c.Redirect(http.StatusTemporaryRedirect, "/") } }
Exchange メソッドを使用します。アクセス トークンを取得するには、
fetchQQUserInfo メソッドを使用して QQ ユーザー情報を取得します。
openid は、QQ ユーザーを一意に識別するために使用されます。次に、QQ ユーザー レコードがデータベースに存在するかどうかを確認し、存在する場合はアクセス トークンを更新し、存在しない場合は新しいアカウント レコードを作成します。
- 認証と認可
func AuthRequired(handler http.Handler) http.Handler { return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { sess, err := store.Get(r, "session") if err != nil { http.Error(w, err.Error(), http.StatusInternalServerError) return } if _, ok := sess.Values["user_id"]; !ok { w.Header().Set("Location", "/login") w.WriteHeader(http.StatusSeeOther) return } handler.ServeHTTP(w, r) }) }
以上がBeego と OAuth2 を使用したサードパーティ ログインの実装の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









PHP と OAuth: Microsoft ログイン統合の実装 インターネットの発展に伴い、便利な登録とログイン エクスペリエンスを提供するために、ユーザーがサードパーティ アカウントを使用してログインできるようにする必要がある Web サイトやアプリケーションがますます増えています。 Microsoft アカウントは世界中で広く使用されているアカウントの 1 つであり、多くのユーザーが Web サイトやアプリケーションにログインするために Microsoft アカウントを使用したいと考えています。 Microsoft ログインの統合を実現するには、OAuth (Open Authorization) プロトコルを使用します。 OAuth は、ユーザーがサードパーティのアプリケーションに代わって動作することを承認できるオープン標準の承認プロトコルです。

PHP での OAuth: JWT 認証サーバーの作成 モバイル アプリケーションの台頭とフロントエンドとバックエンドの分離の傾向により、OAuth は最新の Web アプリケーションに不可欠な部分になりました。 OAuth は、標準化されたプロセスとメカニズムを提供することで、ユーザーのリソースを不正アクセスから保護する承認プロトコルです。この記事では、PHP を使用して JWT (JSONWebTokens) ベースの OAuth 認証サーバーを作成する方法を学びます。 JWT の一種です。

PHP と OAuth を使用して GoogleDrive を統合する方法 GoogleDrive は、ユーザーがクラウドにファイルを保存し、他のユーザーと共有できるようにする人気のクラウド ストレージ サービスです。 GoogleDriveAPI を通じて、PHP を使用して GoogleDrive と統合するコードを記述し、ファイルのアップロード、ダウンロード、削除、その他の操作を実装できます。 GoogleDriveAPI を使用するには、OAuth 経由で認証する必要があります。

OAuth2 認証方法と PHP での実装 インターネットの発展に伴い、サードパーティのプラットフォームと対話する必要があるアプリケーションがますます増えています。ユーザーのプライバシーとセキュリティを保護するために、多くのサードパーティ プラットフォームは OAuth2 プロトコルを使用してユーザー認証を実装しています。この記事では、OAuth2 認証方法と PHP での実装を紹介し、対応するコード例を添付します。 OAuth2 は、ユーザーがサードパーティのアプリケーションが別のサービス プロバイダー上のリソースにアクセスすることを、何も言及せずに承認できるようにする承認フレームワークです。

今日の急速な技術発展の時代では、雨後の筍のようにプログラミング言語が出現しています。多くの注目を集めている言語の 1 つは Go 言語です。Go 言語は、そのシンプルさ、効率性、同時実行の安全性などの機能により多くの開発者に愛されています。 Go 言語は、多くの優れたオープンソース プロジェクトがある強力なエコシステムで知られています。この記事では、厳選された 5 つの Go 言語オープンソース プロジェクトを紹介し、読者を Go 言語オープンソース プロジェクトの世界へ導きます。 KubernetesKubernetes は、自動化されたオープンソースのコンテナ オーケストレーション エンジンです。

サードパーティ ログインに Hyperf フレームワークを使用する方法 はじめに: インターネットの発展に伴い、サードパーティ ログインは多くの Web サイトやアプリケーションの標準機能になりました。サードパーティのログインを通じて、ユーザーはサードパーティのプラットフォーム上の既存のアカウント情報を使用して他の Web サイトやアプリケーションにログインできるため、面倒な登録プロセスが回避され、ユーザー エクスペリエンスが大幅に向上します。この記事では、Hyperf フレームワークを使用してサードパーティのログイン機能を実装する方法を、具体的なコード例とともに紹介します。 1. 準備作業 サードパーティログインの実装を開始する前に、

QQ ログイン統合に PHP と OAuth を使用する方法の紹介: ソーシャル メディアの発展に伴い、ユーザーが簡単に登録してログインできるように、サードパーティのログイン機能を提供する Web サイトやアプリケーションが増えています。中国最大のソーシャル メディア プラットフォームの 1 つである QQ は、多くの Web サイトやアプリケーションで提供されるサードパーティのログイン サービスとしても利用されています。この記事では、QQ ログイン統合に PHP と OAuth を使用する方法の手順をコード例とともに紹介します。ステップ 1: QQ オープン プラットフォーム開発者として登録します。QQ ログインの統合を開始する前に、

PHP を使用して、OAuth2 に基づくサードパーティの承認と認証を実装します。OAuth2 は、サードパーティのアプリケーションがユーザー リソースにアクセスすることを承認するために使用されるオープン標準プロトコルです。シンプル、安全、柔軟であり、さまざまな Web アプリケーションやモバイル アプリケーションで広く使用されています。 PHP では、サードパーティのライブラリを使用して OAuth2 認可と認証を実装できます。この記事では、サンプル コードを組み合わせて、PHP を使用して OAuth2 に基づくサードパーティの承認と認証を実装する方法を紹介します。まず、コンポを使用する必要があります
