我必须使用: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登录?
在我看来,我所做的这段代码是第二次授权,还是我错了?也许还有其他方法可以解决这个问题吗?
答案 0 :(得分:-2)
我认为在没有数据库的情况下进行api登录是一个坏主意,因为每次用户将通过另一个系统登录时,都会发生api调用,这将在您的系统生效时创建更多流量。更好的方法是首次进行api调用并将数据存储在数据库中,然后在用户重新登录时从数据库调用数据。