紹介マジックURLログイン


AppWrite 0.10認証の方法としては、ユーザーがパスワードを提供することなく、アカウントを作成することができますURLをメールで送信されたURLをメールで送信されます.
この機能は、アプリケーションのパスレス認証プロセスを提供する場合に特に便利です.


⚙️ セットアップ
WebアプリケーションにマジックURL認証を追加できる方法を学びましょうWeb SDK . 同じことができるFlutter SDK and Android SDK .
最初のステップは、このようにNPMでWeb SDKをプロジェクトに追加することです.
npm install appwrite --save
あなたがバンドルを使用しているならRollup or webpack ), appwriteモジュールを必要に応じてインポートできます.
import { Appwrite } from "appwrite";
CDN ( Content Delivery Network )をインストールするには、AppWriteサービスを使用する前に、次のスクリプトをHTMLファイルに追加します.
<script src="https://cdn.jsdelivr.net/npm/appwrite"></script>
次のステップは、プロジェクト設定ページであなたのSDKコードを初期化することです.
// Init your Web SDK
const appwrite = new Appwrite();

appwrite
    .setEndpoint('http://localhost/v1') // Your Appwrite Endpoint
    .setProject('455x34dfkj') // Your Appwrite Project ID
;

🎩 マジックURLを作る
SDKが設定されたら、アカウントサービスにアクセスして createMagicURLSession() メソッド.このメソッドは、電子メールアドレスとリダイレクトURLを引数として受け取ります.
// Initiate the Magic URL login
appwrite.account.createMagicURLSession('[email protected]', 'http://localhost/')
    .then(response => {
        console.log(response); // Success
    }, error => {
        console.log(error); // Failure
    });
If the createMagicURLSession() メソッドがエラーなしで完了すると、要求は次のステップの秘密キーを含むURLでユーザーにメールを送信します.ユーザーがリンクをクリックすると、それらはURLクエリ文字列に接続されている秘密キーとユーザーID値を指定したURLにリダイレクトされます.このリンクは1時間有効です.渡された電子メールが既存のユーザに属していない場合、このリクエストは渡されたメールアドレスのユーザーを作成します.

🔐 ログインでログイン
ユーザーが認証プロセスを初期化することができるようになりましたので、メールで提供されているURLからリダイレクトを処理することで完了する必要があります.
使用する updateMagicURLSession() URLのクエリ文字列から秘密とuserid値を呼び出します.

Please note that in order to avoid a Redirect Attack the only valid redirect URLs are the ones from domains you have set when adding your platforms in the console interface.


const urlParams = new URLSearchParams(window.location.search);
const userId = urlParams.get('userId');
const secret = urlParams.get('secret');

let promise = appwrite.account.updateMagicURLSession(userId, secret);

promise.then(function (response) {
    console.log(response); // Success
}, function (error) {
    console.log(error); // Failure
});
If the updateMagicURLSession() 成功した場合、ユーザーがログインされます.リンクが使用されると、再び使用することはできません.

🏁 結論
あなたが助けを必要とするか、AppWriteで魔法のURLログインをセットアップしているどんな困難にでも遭遇するならばjoin our Discord .

🔖 参考文献
  • Appwrite Discord
  • Appwrite Documentation
  • Appwrite Homepage