Sequelizeは、約束ベースのnode.js ormです。 PostgreSQL、MySQL、MariadB、SQLite、およびMSSQLで使用できます。このチュートリアルでは、Webアプリのユーザー向けに認証を実装します。また、NodeとMySQLと一緒にノード用の一般的な認証ミドルウェアであるPassportを使用して、ユーザー登録とログインを実装します。エクスプレスフレームワークなので、必要なもののインストールを開始します。
1。 package.json ファイルを生成
アプリのディレクトリを作成します。このディレクトリ内で、ターミナルまたはコマンドプロンプトからこれを実行します。これにより、すぐに実行される一連のプロンプトが表示されます。
- name 。
- を入力するには を使用して 。 server.js 依存関係のインストール
このチュートリアルの主要な依存関係は次のとおりです。ビュー
端末またはコマンドプロンプトからインストールするには、次のように次のように実行します。 -save
npm install express-session - save
npm install bcryptjs - save
npm instrage express handlebars - save
npmインストールmysql2 - save
このプロジェクトにGitを使用している場合は、Express を作成します。次に、Expressを初期化してから、可変パスポートモジュールとパスポートとモデルに割り当てます。これを実行して、すべてが順調かどうかを確認します。モデル
次にやろうとしていることは、ユーザーモデルを作成することです。これは基本的にユーザーテーブルです。これには、基本的なユーザー情報が含まれます。
モデルフォルダーでは、ファイルを作成し、 user.js に名前を付けます。このファイルのフルパスは app/models/user.js 。 autoincrement:true、 馴染みのある「サイトがライブである必要があります。ニース! データベース 順調に見えます "メッセージ。これは、私たちの続編モデルが正常に同期されていることを意味します。データベースをチェックすると、指定された列のユーザーテーブルが表示されます。 up。 最初のことは、authcontroller ファイルをインポートしてサインアップルートを定義することです。 authcontroller.signup); 次に、このルートを server.js にインポートし、 server.js を渡します。 require( './ app/rootes/auth.js')(app); これを実行: :5000/signupにアクセスしてください。 src = "https://img.php.cn/upload/article/000/000/000/174166225185648.png"> サインインフォームの手順を繰り返しましょう。前と同様に、ビューフォルダーに signin.hbs という名前のファイルを作成し、次のHTMLコードを貼り付けます: app/controllers/authcontroller.js 。 thenこれ: bcryptjs 、これはパスワードを保護する必要があります。 module.exports このようにブロック>このようにブロックします。 this:
primarykey:true、
type:sequelize.integer
}、
firstName:{
type:sequelize.string、
notempty:true
}、
lastName:{
type:sequelize.string:
Sequelize.text
}、
about:{
type:sequelize.text
}、
email:{ type:sequelize.string、
isemail:true
}
}、
last_login:{
type:sequelize.date
}、
status:{
type:sequelize.enum( 'active'、 'inactive')、
defaultValue: 'Active'
});
return user;
} server.js
};
node server.js <br>
&lt;!doctype html&gt; <br>&lt; &lt; link rel = "styleSheet" href = "/styles.css"&gt; <br>&lt;/head&gt; <br>&lt; body&gt; <br>&lt; h2&gt; Passport with Sequelize and mysql&lt;/h2&gt; action = "Signin"&gt; <br>&lt; label for = "Email"&gt;電子メールアドレス&lt;/lt;/lavel&gt; <br>&lt; input class = "text" name "type =" text "/&gt; <br>&lt; label for =" password "&gt&lt&gt; <br> <br> <br>&lt" passwor /&gt; <br>&lt; input class = "btn" type = "submit" value = "sign in"/&gt; <br>&lt;/gt; <br>&lt;/gt; <br>&lt;/html&gt; <br>
exports.signin = function(req、res){<br> res.render( 'signin'); <br>}; <br>
passport.use( 'local-signup'、new localstrategy(<br> {<br> usernamefield: 'email'、<br> <brasshfield> passreqtocallback:true:true //リクエスト全体をコールバック<br>)、<br> <br>パスワードフィールド(パスポート変数)は。</brasshfield>
最後の変数ユーザー、ユーザーが既に存在するかどうかを確認します。 done(null、false、{
message: 'その電子メールは既に取得されている'
});
} req.body.lastname
};
user.create(data).then(function(newuser、created){
if(!newuser){
return done(null、false);
}
if(newuser){
return done);
}
});
req.body オブジェクト。これには、サインアップフォームからの入力が含まれています。
ルート
code Import
//パスポート戦略が必要
( './ app/config/config/passport/passport.js')(パスポート) Models.User);
your server.js は次のようになります。 =要求( 'Express handlebars');
app.use(express.urlencoded({
extended:true
})
app.use(express.json());
// passport
app.use(session({
secret: 'keyboard cat'、
resage:true、
true
})); //セッションシークレット
app.use(passport.initialize());
app.use(passport.session()); //永続的なログインセッション
// for handlebars
app.set( 'views'、 './app/views');
app.engine( 'hbs'、exphbs.engine({
extname: '.hbs'、
defaultlayout:fals、
layoutsdir: "Views/layouts/"
})))));
app.set( 'View Engine'、 '.hbs');
app.get( '/'、function(req、res){
res.send( 'Passport with Passport with Passport');
});
//モデル
authRoute = require( './ app/routes/auth.js')(app);
//パスポート戦略
require( './ app/config/passport/passport.js')(パスポート、モデル。 fine ');
})。 console.log(err);
});
これで、実際に/signup ルートに戦略を適用します。
最初に、 app/routes/auth.js に移動し、このようなサインアップに投稿するルートを追加します。 }
));
パスポートが必要なので、この方法に渡す必要があります。このスクリプトにパスポートをインポートするか、server.jsから渡すことができます。後者をしましょう。
このファイルでエクスポートされる関数を変更してください app/routes/auth.js パスポートをパラメーターとして持つようにします。 app/routes/auth.js のコードは、変更後にこのように見えます。 authcontroller.signin);
app.post( '/signup'、passport.authenticate( 'local-signup'、{
successredirect: '/dashboard'、
failureredirect: '/signup'
}
));
}; module.exports ブロック、他のすべてのコード行の下。これ:
app.get( '/dashboard'、isloggedin、authcontroller.dashboard); <br>
今度は、アプリを再度実行して、ダッシュボードページにアクセスしようとしてログインしないようにすると、サインインページにリダイレストする必要があります。最終部品:サインイン
最初に、 config/config/passport/passport.js
// local signin <br> cassport.use( 'local-signin'、new localstrategy(<br> <br> {<br> {<br> {<br> {<br> by default by we we we we we we we we we we we we we we we we we we we we we wuse suse)を実装する時が来ました。電子メール<br> usernamefield: 'email'、<br> passwordfield: 'password'、<br> passreqtocallback:true //コールバック<br>}、<br>}、<br> function(req、email、password、done){<br> varuser = user; <br> var isvalidpassword = function(userspass、pardfard、pardferd、pardferpper userpass); <br>} <br> user.findone({<br> where:{<br> email:email <br>} <br>})。 (!isValidPassWord(user.password、password)){<br> return done(null、false、{<br>メッセージ: '誤ったパスワード。' <br>}); <br>} <br> var userinfo = user.get(); <br> return done(null、userinfo); <br>})。 err); <br> return done(null、false、{<br> message: 'signin' <br>}); <br>}); <br>} <br>); <br>
bcrypt で。 詳細が正しければ、ユーザーは署名されます。
さあ、 routes/auth.js に移動し、/signin に投稿するルートを追加します。 '/dashboard'、
failureredirect: '/signin'
}
)) {
app.get( '/signup'、authcontroller.signup);
app.get( '/signin'、authcontroller.signin);
app.post( '/signup'、passport.authenticate( 'local-signup'、{local-signup '、{
suckredirect:'/signup '
);
app.get( '/dashboard'、isloggedin、authcontroller.dashboard); <br> app.get( '/logout'、authcontroller.logout);
post( '/signin'、purdport.authenticate( 'local-signin'、{
sucderredirect: '/board:'/board '、 '/signin'
}
));
function isloggedin(req、res、next){
if(req.isauthenticed())
return next();
res.redirect( '/signin');
}
}
サインアップ中に使用すると、http:// localhost:5000/dashboard/。 MySQLデータベースを使用して、後遺症とパスポートを使用しました。
アプリケーションをより魅力的にするために、CSSスタイリングを少し追加します。このチュートリアルのスタイリングのコードと完全なコードは、GitHubに記載されています。
結論
これは、Passportを使用するためにPassportを使用して、「Secelize and MySQL」を認証するチュートリアルを終了します。 Sequelizeは、ノードを使用するときにMySQLを扱うための非常に便利なORMです。私はそれが非常に便利であることを個人的に発見しました。次のノードMysQLアプリで使用することを絶対に検討する必要があります。
この投稿は、メアリーオコスンからの貢献により更新されました。メアリーはナイジェリアのラゴスに拠点を置くソフトウェア開発者であり、node.js、javascript、mysql、およびnosqlテクノロジーの専門知識を持っています。
以上が後遺症とMySQLを使用したパスポートを使用しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

Web開発におけるJavaScriptの主な用途には、クライアントの相互作用、フォーム検証、非同期通信が含まれます。 1)DOM操作による動的なコンテンツの更新とユーザーインタラクション。 2)ユーザーエクスペリエンスを改善するためにデータを提出する前に、クライアントの検証が実行されます。 3)サーバーとのリフレッシュレス通信は、AJAXテクノロジーを通じて達成されます。

JavaScriptエンジンが内部的にどのように機能するかを理解することは、開発者にとってより効率的なコードの作成とパフォーマンスのボトルネックと最適化戦略の理解に役立つためです。 1)エンジンのワークフローには、3つの段階が含まれます。解析、コンパイル、実行。 2)実行プロセス中、エンジンはインラインキャッシュや非表示クラスなどの動的最適化を実行します。 3)ベストプラクティスには、グローバル変数の避け、ループの最適化、constとletsの使用、閉鎖の過度の使用の回避が含まれます。

Pythonは、スムーズな学習曲線と簡潔な構文を備えた初心者により適しています。 JavaScriptは、急な学習曲線と柔軟な構文を備えたフロントエンド開発に適しています。 1。Python構文は直感的で、データサイエンスやバックエンド開発に適しています。 2。JavaScriptは柔軟で、フロントエンドおよびサーバー側のプログラミングで広く使用されています。

PythonとJavaScriptには、コミュニティ、ライブラリ、リソースの観点から、独自の利点と短所があります。 1)Pythonコミュニティはフレンドリーで初心者に適していますが、フロントエンドの開発リソースはJavaScriptほど豊富ではありません。 2)Pythonはデータサイエンスおよび機械学習ライブラリで強力ですが、JavaScriptはフロントエンド開発ライブラリとフレームワークで優れています。 3)どちらも豊富な学習リソースを持っていますが、Pythonは公式文書から始めるのに適していますが、JavaScriptはMDNWebDocsにより優れています。選択は、プロジェクトのニーズと個人的な関心に基づいている必要があります。

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の複数の顧客にサービスを提供できます


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

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

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

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

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

DVWA
Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、
