このパッケージは、ユーザーにログを記録する一時的な署名されたルートを提供します。それが提供していないのは、ユーザーへのルートへのリンクを実際に送信する方法です。これは、ユーザーとのコミュニケーション方法について仮定したくないためです。
composer require grosv/laravel-passwordless-login
use App User ;
use Grosv LaravelPasswordlessLogin LoginUrl ;
function sendLoginLink ()
{
$ user = User :: find ( 1 );
$ generator = new LoginUrl ( $ user );
$ generator -> setRedirectUrl ( ' /somewhere/else ' ); // Override the default url to redirect to after login
$ url = $ generator -> generate ();
//OR Use a Facade
$ url = PasswordlessLogin :: forUser ( $ user )-> generate ();
// Send $url in an email or text message to your user
}
一部のサイトには複数のユーザータイプモデル(ユーザー、管理者など)があるため、各ユーザータイプのデフォルト構成を設定するために特性を使用できます。以下の方法は特性によって提供されるため、異なる値を使用するものを含めるだけです。
use Grosv LaravelPasswordlessLogin Traits PasswordlessLogin ;
use Illuminate Foundation Auth User as Authenticatable ;
class User extends Authenticatable
{
use PasswordlessLogin ;
public function getGuardNameAttribute (): string
{
return config ( ' laravel-passwordless-login.user_guard ' );
}
public function getShouldRememberLoginAttribute (): bool
{
return config ( ' laravel-passwordless-login.remember_login ' );
}
public function getLoginRouteExpiresInAttribute (): int
{
return config ( ' laravel-passwordless-login.login_route_expires ' );
}
public function getRedirectUrlAttribute (): string
{
return config ( ' laravel-passwordless-login.redirect_on_success ' );
}
}
PasswordLessLoginの特性を使用している場合、ログインするユーザーにcreatePasswordlessLoginLink()
呼び出すだけで、特性で定義されたデフォルトを使用してリンクを生成できます。
このパッケージで誰かが作っているのを見ることができる最大の間違いは、あるユーザーのログインリンクを作成し、別のユーザーに送信することです。注意してコードをテストしてください。他の誰かの愚かさのために誰かが私に腹を立てたくありません。
構成ファイルを公開するか、.envファイルで使用する値を設定するだけです。
LPL_USER_MODEL = AppUser
LPL_REMEMBER_LOGIN = false
LPL_LOGIN_ROUTE = /magic-login
LPL_LOGIN_ROUTE_NAME = magic-login
LPL_LOGIN_ROUTE_EXPIRES = 30
LPL_REDIRECT_ON_LOGIN = /
LPL_USER_GUARD = web
LPL_USE_ONCE = false
LPL_INVALID_SIGNATURE_MESSAGE = " Expired or Invalid Link "
LPL_USER_MODEL
は、あなたがログインしている認証可能なモデルです(通常はapp user)
LPL_REMEMBER_LOGIN
は、ログインを覚えておきたいかどうかです(ユーザーが私を覚えているように)
LPL_LOGIN_ROUTE
は、このパッケージが提供するログイン関数を指すルートです。他のルートのいずれかと衝突しないようにしてください。
LPL_LOGIN_ROUTE_NAME
はLPL_LOGIN_ROUTEの名前です。繰り返しますが、既存のルート名と衝突しないようにしてください。
LPL_LOGIN_ROUTE_EXPIRES
、リンクを適切にしたい分数の数です。ユースケースにとって理にかなっている最短値を設定することをお勧めします。
LPL_REDIRECT_ON_LOGIN
、マジックリンクをクリックしてログインした後にユーザーを送信したい場所です。
LPL_USE_ONCE
は、最初の使用後にリンクを期限切れにするかどうかです(キャッシュを使用して使用済みのリンクを保存します)
LPL_INVALID_SIGNATURE_MESSAGE
、無効または期限切れのリンクで401ステータスを中止したときに送信されるカスタムメッセージです。また、 Handler.php
ファイルでInvalidSignatureException
とExpiredSignatureException
処理することにより、無効または期限切れのリンクを処理する方法に関するカスタムロジックを追加することもできます。
セキュリティの問題については、[email protected]に直接メールしてください。他の問題については、ここで問題トラッカーを使用してください。
すべてのパッケージの改善と維持に関するコミュニティの支援を歓迎します。お互いに親切にしてください。私たちは皆、最善を尽くそうとしていることを忘れないでください。