メテオアカウントの拡張(ログインシステム)
8811 ワード
これは、最初に投稿された記事の更新は、現在消滅し、気象学です.COM .Here is the archived version.
このコードは、Meteor 2.3.5で実装されています.
流星は、アカウントと呼ばれる本当に良いユーザ認証システムを持っています.それはとても強力で、パスワード、Facebook、Twitterや他のOAuthプロバイダを使用してログインのサポートに組み込まれているAtmosphere ). もう一つの重要な事実は、Meteorアカウントが緊密に炉心メテオサービスと大きなレベルのセキュリティを提供するように結合されていることです.
しかし、カスタム認証メソッドを追加するにはどうすればよいですか?カスタム認証メソッドの追加もかなり簡単です.どのようにしましょう.
このチュートリアルでは、Meteorアプリの管理目的のカスタム認証システムを作成します.
を作成する流星アプリ 追加 変更する
今、我々は管理者認証システムのログインハンドラを登録する必要があります.これはサーバー側の機能ですので、次のコンテンツを作成します
メインクライアントJSファイルに次のコンテンツを追加します
あなたが見ることができるように、我々は現在管理者ユーザーとしてログインされます.
それだ!振り返ると、 我々は我々のアプリの管理ログインシステムを作成しようとしていた それから、我々は新しい ログイン要求を呼び出すクライアント側関数も追加しました 利益!
あなたはこれを見つけることができますcompleted application on GitHub .
Meteorで新しい認証システム/メソッドを追加するのは簡単ですか?私はあなたの考えを知ってみよう!
あなたが私の仕事が好きならGitHub Sponsors ❤️ .
このコードは、Meteor 2.3.5で実装されています.
流星は、アカウントと呼ばれる本当に良いユーザ認証システムを持っています.それはとても強力で、パスワード、Facebook、Twitterや他のOAuthプロバイダを使用してログインのサポートに組み込まれているAtmosphere ). もう一つの重要な事実は、Meteorアカウントが緊密に炉心メテオサービスと大きなレベルのセキュリティを提供するように結合されていることです.
しかし、カスタム認証メソッドを追加するにはどうすればよいですか?カスタム認証メソッドの追加もかなり簡単です.どのようにしましょう.
このチュートリアルでは、Meteorアプリの管理目的のカスタム認証システムを作成します.
This is not a properly implemented authentication system! It is only for demonstration purposes!
始める
meteor create admin --blaze
accounts-ui
パッケージmeteor add accounts-ui
index.html
次のコードでは、単純な追加loginButtons
からのヘルパーaccount-ui
パッケージを削除し、info
テンプレート<head>
<title>admin</title>
</head>
<body>
<h1>Welcome to Meteor!</h1>
{{> hello}}
</body>
<template name="hello">
<button>Click Me</button>
<p>You've pressed the button {{counter}} times.</p>
{{> loginButtons}}
<input type="button" value="Click" />
</template>
今、あなたがアプリケーションを起動すると、以下のようなものが表示されます(赤でメッセージを心配しないでください).ログハンドラの追加
今、我々は管理者認証システムのログインハンドラを登録する必要があります.これはサーバー側の機能ですので、次のコンテンツを作成します
server/main.js
. 詳細はコメントを参照ください.import { Accounts } from 'meteor/accounts-base';
Accounts.registerLoginHandler(function(loginRequest) {
// There are multiple login handlers in meteor.
// A login request go through all these handlers to find it's login handler
// so in our login handler, we only consider login requests which has admin field
if(!loginRequest.admin) {
return undefined;
}
// Our authentication logic 😉
if(loginRequest.password !== 'admin-password') {
return null;
}
// We create a admin user if none exists, and get the userId
let userId = null;
const user = Meteor.users.findOne({ username: 'admin' }, { fields: { _id: 1 } });
if(!user) {
userId = Meteor.users.insert({username: 'admin'});
} else {
userId = user._id;
}
// Send logged in user's user id 🎉
return {
userId
}
});
今、我々は我々の基本で行われますloginHandler
.クライアント側ログイン機能
メインクライアントJSファイルに次のコンテンツを追加します
client/main.js
). コードのコメントを参照してくださいimport { Meteor } from 'meteor/meteor';
Meteor.loginAsAdmin = function(password, callback) {
// Create a login request with admin: true, so our loginHandler can handle this request
const loginRequest = { admin: true, password: password };
// Send the login request 📤
Accounts.callLoginMethod({
methodArguments: [loginRequest],
userCallback: callback
});
};
今私たちの管理ログインシステムを追加しました.ジャストコールloginAsAdmin
ブラウザコンソール内のメソッド.管理者ユーザがログインしているのを見るでしょう.Meteor.loginAsAdmin('admin-password');
あなたが見ることができるように、我々は現在管理者ユーザーとしてログインされます.
それだ!振り返ると、
loginHandler
そのためにあなたはこれを見つけることができますcompleted application on GitHub .
Meteorで新しい認証システム/メソッドを追加するのは簡単ですか?私はあなたの考えを知ってみよう!
あなたが私の仕事が好きならGitHub Sponsors ❤️ .
Reference
この問題について(メテオアカウントの拡張(ログインシステム)), 我々は、より多くの情報をここで見つけました https://dev.to/storytellercz/extending-meteor-accounts-login-system-5h5gテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol