繁体   English   中英

如何仅在 Laravel 中使用 url 和 hash 参数登录? (没有用户名和密码)

[英]How to login with url and hash parameter only in Laravel? (without username and password)

我想在不输入表单的情况下向用户发送带有自己哈希值的链接以登录,我已经尝试过了,但是速度太慢了,所以我不确定它是否有效:

web.php

Route::get('link/{hash}', 'Auth\LoginController@loginless')->where('hash', '(.*)');

登录控制器.php

public function loginless($hash)
{
    $response           = array();
    $response['status'] = 500;
    $response['url']    = null;
    
    $username = '';
    $password = '';
    $arr_username = User::select('username','password')->get();
    
    foreach ($arr_username as $arr){
        if (Hash::check($arr->username, $hash)){
            $username = $arr->username;
            $password = $arr->password;
            break;
        }
    }

    if (\Auth::attempt(['username' => $username, 'password' => $password])) {
        $response['status'] = 200;
        $response['url']    = route('dashboard');
    }

    return $response;
}

有什么办法让它更有效率吗? (没有foreach有可能吗?)

在你的情况下,你可以使用密钥加密, 检查这个

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM