我目前正在构建一个移动应用程序并使用 laravel 8 作为我的后端我正在创建一个登录注册和注销 api 以允许用户从移动应用程序登录。我使用护照作为我的身份验证卫士。注册 api 有效但登录 api api 不断告诉我未经授权。这是我的控制器
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use App\Adusum;
use Illuminate\Support\Facades\Auth;
use Hash;
use Validator;
class AdusumController extends Controller
{
public $successStatus = 200;
/**
* Register adusum api
*
* @return \Illuminate\Http\Response
*/
public function register(Request $request)
{
$validator = Validator::make($request->all(), [
'username' => 'required',
'fullname' => 'required',
'date_of_birth' => 'required',
'date_of_entry' => 'required',
'name_of_provincial' => 'required',
'current_community' => 'required',
'password' => 'required',
'c_password' => 'required|same:password',
]);
if ($validator->fails()) {
return response()->json(['error'=>$validator->errors()], 401);
}
$input = $request->all();
$input['password'] = bcrypt($input['password']);
$user = Adusum::create($input);
$success['token'] = $user->createToken('MyApp')->accessToken;
$success['username'] = $user->username;
return response()->json(['success'=>$success], $this-> successStatus);
}
/**
* Login adusum api
*
* @return \Illuminate\Http\Response
*/
public function login()
{
if (Auth::guard('adusum')->attempt(['username' => request('username'), 'password' => request('password')])) {
config(['auth.guards.adusum-api.provider' => 'adusums']);
$adusum = Adusum::select('adusums.*')->find(auth()->guard('adusum')->user()->username);
$success['token'] = $adusum->createToken('MyApp',['adusum'])-> accessToken;
return response()->json(['success' => $success], $this-> successStatus);
} else {
return response()->json(['error' => ['Username and Password are Wrong.']], 200);
}
}
}
这是我的模型
<?php
namespace App;
use Illuminate\Contracts\Auth\UserProvider;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Foundation\Auth\User as Authenticatable;
use Illuminate\Notifications\Notifiable;
use Laravel\Passport\HasApiTokens;
class Adusum extends Authenticatable
{
use HasFactory, Notifiable, HasApiTokens;
protected $table = "adusums";
/**
* The attributes that are mass assignable.
*
* @var array
*/
protected $fillable = [
'username',
'fullname',
'date_of_birth',
'date_of_entry',
'name_of_provincial',
'current_community',
'password',
];
}
任何帮助将不胜感激