如何在Laravel 5.6中使用没有数据库的auth?

时间:2018-05-16 06:08:19

标签: php laravel authentication

我必须使用:php artisan make:auth在Laravel中进行默认登录,并且我想再添加一次API身份验证。在这个auth API中,我不需要数据库来登录。

这种情况有什么解决方案吗?

我想制作自定义提供商并保护它,但我被AlumniAuthProvider.php App\Auth卡住了:

<?php

namespace App\Auth;

use Illuminate\Contracts\Auth\User as UserContract;
use Illuminate\Contracts\Auth\Authenticatable;
use Illuminate\Contracts\Auth\UserProvider;
use App\Auth\User;

class AlumniAuthProvider implements UserProvider {

    public function alumni()
    {           
    }

    public function retrieveById($identifier)
    {
    }

    public function retrieveByToken($identifier, $token)
    {
    }

    public function updateRememberToken(Authenticatable $user, $token)
    {
    }

    public function retrieveByCredentials(array $credentials)
    {
    }

    public function validateCredentials(Authenticatable $user, array $credentials)
    {       
    }
}
Alumni.php

App\Auth

<?php

namespace App\Auth;

use Illuminate\Contracts\Auth\Authenticatable;
use Illuminate\Http\Request;

class Alumni implements Authenticatable
{
    public function getAuthIdentifierName()
    {
    }
    /**
     * Get the unique identifier for the user.
     *
     * @return mixed
     */
    public function getAuthIdentifier()
    {
    }

    /**
     * Get the password for the user.
     *
     * @return string
     */
    public function getAuthPassword()
    {        
    }

    /**
     * Get the token value for the "remember me" session.
     *
     * @return string
     */
    public function getRememberToken()
    {
    }

    /**
     * Set the token value for the "remember me" session.
     *
     * @param  string  $value
     * @return void
     */
    public function setRememberToken($value)
    {
    }

    /**
     * Get the column name for the "remember me" token.
     *
     * @return string
     */
    public function getRememberTokenName()
    {
    }
}

如何进行此自定义API登录?

在我看来,我所做的这段代码是第二次授权,还是我错了?也许还有其他方法可以解决这个问题吗?

1 个答案:

答案 0 :(得分:-2)

我认为在没有数据库的情况下进行api登录是一个坏主意,因为每次用户将通过另一个系统登录时,都会发生api调用,这将在您的系统生效时创建更多流量。更好的方法是首次进行api调用并将数据存储在数据库中,然后在用户重新登录时从数据库调用数据。