パスワードは本質的に脆弱であることは周知の事実です。したがって、エンドユーザーが使用するアプリケーションごとに強力なパスワードを作成することを要求すると、事態はさらに悪化するだけです。
簡単な回避策は、既存のソーシャル アカウント (Facebook、Twitter、Google など) を介してユーザーを認証させることです。この記事では、まさにこれを実行し、この認証シリーズの最初の部分にこのソーシャル ログイン機能を追加して、Passport ミドルウェアを使用して Facebook および Twitter アカウントで認証できるようにします。
前回の記事をまだ読んでいない場合は、この記事で築いた基礎を基にして新しい戦略、ルート、ビューを構築するので、読むことをお勧めします。
ソーシャルログイン
初心者のために説明すると、ソーシャル ログインは、Facebook、Twitter などのソーシャル ネットワーキング サイトからの既存の情報を使用するシングル サインオンです。通常、ユーザーはすでにアカウントを作成しているはずです。
ソーシャル ログインは主に OAuth 2.0 などの認証スキームに依存します。 OAuth でサポートされているさまざまなログイン フローの詳細については、この記事を参照してください。ソーシャル ログインを処理するために Passport を選択したのは、Facebook、Twitter、Google、GitHub など、さまざまな OAuth プロバイダーに異なるモジュールを提供しているためです。この記事では、Passport-facebook モジュールと Passport-twitter モジュールを使用して、既存の Facebook または Twitter アカウントを介したログイン機能を提供します。
Facebook認証
Facebook 認証を有効にするには、まず Facebook 開発者ポータルを使用して Facebook アプリを作成する必要があります。アプリ ID とアプリ シークレットをメモし、設定 に移動し、Website セクションで Web サイト URL を指定してコールバック URL を指定します。応用。また、Contact Email フィールドに有効な電子メール アドレスを必ず入力してください。このアプリケーションは公開され、一般にアクセスできる必要があります。
次に、ステータスとレビューセクションに移動し、スライダーを Yes に回してアプリを公開します。 Facebook への接続に必要な構成情報を保持する構成ファイル fb.js を作成します。
リーリーFacebook ログイン ポリシー
Node アプリケーションに戻り、FacebookStrategy モジュールを使用して Facebook 認証の Passport 戦略を定義し、上記の設定を活用してユーザーの Facebook プロフィールを取得し、ビューに詳細を表示します。 リーリー
ルーティングの構成
次に、Facebook ログインを有効にし、ユーザーがアプリケーションに Facebook アカウントの使用を許可した後にコールバックを処理するためのルートをいくつか追加する必要があります。
リーリーデモ アプリケーションのログイン ページは次のようになります:
[Facebook でログイン]ボタンをクリックすると、Facebook での認証が試行されます。すでに Facebook にログインしている場合は、許可を求める次のダイアログ ボックスが表示されます。そうでない場合は、Facebook にログインしてからこのダイアログ ボックスを表示するように求められます。
このデモ アプリケーションによって提供される基本情報に加えて、適切なスコープを使用し、ユーザー プロファイルを通じて受信したアクセス トークンで Facebook API を使用することによって、同じ認証メカニズムを使用することもできることに注意してください。
Twitter認証
Twitter 経由の認証を処理するために同様の認証モジュールを接続し、パスポート ツイッター モジュールを支援するためにパスポート チップを接続する必要があります。
まず、アプリケーション管理インターフェイスを使用して新しい Twitter アプリケーションを作成する必要があります。ここで注意すべき点は、コールバック URL を指定するときに、コールバック URL フィールドに「localhost」を指定した場合、Twitter はうまく機能しないようだということです。開発中にこの制限を克服するには、「localhost」の代わりに特別なループバック アドレスまたは「127.0.0.1」を使用できます。アプリケーションを作成した後、次に示すように、構成ファイル内の API キーとシークレット情報をメモします。 リーリー
Twitter ログイン ポリシー
Twitter のログイン戦略は、次の
TwitterStrategy现在要对此进行测试,请务必使用 当您允许应用程序访问您的 Twitter 帐户和有限信息时,登录策略中注册的回调处理程序为调用,然后用于将这些详细信息存储在后端数据库中 这就是你拥有的!我们成功地将 Facebook 和 Twitter 登录添加到示例应用程序中,而无需编写大量代码并通过让 Passport 完成繁重的工作来处理与身份验证机制相关的复杂问题。可以为 Passport 支持的各种提供程序编写类似的登录策略。整个应用程序的代码可以在此 git 存储库中找到。请随意扩展它并在您自己的项目中使用它。
のインスタンスです:
passport.use('twitter', new TwitterStrategy({
consumerKey : twitterConfig.apikey,
consumerSecret : twitterConfig.apisecret,
callbackURL : twitterConfig.callbackURL
},
function(token, tokenSecret, profile, done) {
// make the code asynchronous
// User.findOne won't fire until we have all our data back from Twitter
process.nextTick(function() {
User.findOne({ 'twitter.id' : profile.id },
function(err, user) {
// if there is an error, stop everything and return that
// ie an error connecting to the database
if (err)
return done(err);
// if the user is found then log them in
if (user) {
return done(null, user); // user found, return that user
} else {
// if there is no user, create them
var newUser = new User();
// set all of the user data that we need
newUser.twitter.id = profile.id;
newUser.twitter.token = token;
newUser.twitter.username = profile.username;
newUser.twitter.displayName = profile.displayName;
newUser.twitter.lastStatus = profile._json.status.text;
// save our user into the database
newUser.save(function(err) {
if (err)
throw err;
return done(null, newUser);
});
}
});
});
})
);
配置路由
// route for twitter authentication and login
// different scopes while logging in
router.get('/login/twitter',
passport.authenticate('twitter')
);
// handle the callback after facebook has authenticated the user
router.get('/login/twitter/callback',
passport.authenticate('twitter', {
successRedirect : '/twitter',
failureRedirect : '/'
})
);
/* GET Twitter View Page */
router.get('/twitter', isAuthenticated, function(req, res){
res.render('twitter', { user: req.user });
});
http://127.0.0.1:
<port></port>
而不是使用 http: //localhost
:<port></port>
.正如我们上面已经提到的,在使用“localhost”作为主机名与 Twitter 交换令牌时似乎存在问题。单击使用 Twitter 登录按钮时,正如预期的那样,它会请求用户同意允许此应用程序使用 Twitter。结论
以上がPassport を使用して Node.js アプリケーションにソーシャル認証を提供するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

C/CからJavaScriptへのシフトには、動的なタイピング、ゴミ収集、非同期プログラミングへの適応が必要です。 1)C/Cは、手動メモリ管理を必要とする静的に型付けられた言語であり、JavaScriptは動的に型付けされ、ごみ収集が自動的に処理されます。 2)C/Cはマシンコードにコンパイルする必要がありますが、JavaScriptは解釈言語です。 3)JavaScriptは、閉鎖、プロトタイプチェーン、約束などの概念を導入します。これにより、柔軟性と非同期プログラミング機能が向上します。

さまざまなJavaScriptエンジンは、各エンジンの実装原則と最適化戦略が異なるため、JavaScriptコードを解析および実行するときに異なる効果をもたらします。 1。語彙分析:ソースコードを語彙ユニットに変換します。 2。文法分析:抽象的な構文ツリーを生成します。 3。最適化とコンパイル:JITコンパイラを介してマシンコードを生成します。 4。実行:マシンコードを実行します。 V8エンジンはインスタントコンピレーションと非表示クラスを通じて最適化され、Spidermonkeyはタイプ推論システムを使用して、同じコードで異なるパフォーマンスパフォーマンスをもたらします。

現実世界におけるJavaScriptのアプリケーションには、サーバー側のプログラミング、モバイルアプリケーション開発、モノのインターネット制御が含まれます。 2。モバイルアプリケーションの開発は、ReactNativeを通じて実行され、クロスプラットフォームの展開をサポートします。 3.ハードウェアの相互作用に適したJohnny-Fiveライブラリを介したIoTデバイス制御に使用されます。

私はあなたの日常的な技術ツールを使用して機能的なマルチテナントSaaSアプリケーション(EDTECHアプリ)を作成しましたが、あなたは同じことをすることができます。 まず、マルチテナントSaaSアプリケーションとは何ですか? マルチテナントSaaSアプリケーションを使用すると、Singの複数の顧客にサービスを提供できます

この記事では、許可によって保護されたバックエンドとのフロントエンド統合を示し、next.jsを使用して機能的なedtech SaaSアプリケーションを構築します。 FrontEndはユーザーのアクセス許可を取得してUIの可視性を制御し、APIリクエストがロールベースに付着することを保証します

JavaScriptは、現代のWeb開発のコア言語であり、その多様性と柔軟性に広く使用されています。 1)フロントエンド開発:DOM操作と最新のフレームワーク(React、Vue.JS、Angularなど)を通じて、動的なWebページとシングルページアプリケーションを構築します。 2)サーバー側の開発:node.jsは、非ブロッキングI/Oモデルを使用して、高い並行性とリアルタイムアプリケーションを処理します。 3)モバイルおよびデスクトップアプリケーション開発:クロスプラットフォーム開発は、反応および電子を通じて実現され、開発効率を向上させます。

JavaScriptの最新トレンドには、TypeScriptの台頭、最新のフレームワークとライブラリの人気、WebAssemblyの適用が含まれます。将来の見通しは、より強力なタイプシステム、サーバー側のJavaScriptの開発、人工知能と機械学習の拡大、およびIoTおよびEDGEコンピューティングの可能性をカバーしています。

JavaScriptは現代のWeb開発の基礎であり、その主な機能には、イベント駆動型のプログラミング、動的コンテンツ生成、非同期プログラミングが含まれます。 1)イベント駆動型プログラミングにより、Webページはユーザー操作に応じて動的に変更できます。 2)動的コンテンツ生成により、条件に応じてページコンテンツを調整できます。 3)非同期プログラミングにより、ユーザーインターフェイスがブロックされないようにします。 JavaScriptは、Webインタラクション、シングルページアプリケーション、サーバー側の開発で広く使用されており、ユーザーエクスペリエンスとクロスプラットフォーム開発の柔軟性を大幅に改善しています。


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

SAP NetWeaver Server Adapter for Eclipse
Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

AtomエディタMac版ダウンロード
最も人気のあるオープンソースエディター

ZendStudio 13.5.1 Mac
強力な PHP 統合開発環境

VSCode Windows 64 ビットのダウンロード
Microsoft によって発売された無料で強力な IDE エディター

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