1.Oauth21,定义:OAuth2.0是一种授权机制,主要用于颁发token。2、成员:Client(客户端)Service(验证服务器)3、进程:应用(client)请求Service(验证服务器,可以是微信等第三方,也可以是自己的用户验证服务);服务验证成功返回access_token;拥有access_token的应用可以操作相关的授权功能。4.oauth2授权模式(grant_type)授权码模式(微信等第三方不止一次使用该模式)简化模式密码模式(自身平台有子系统使用该模式较多,下面主要讲该模式)client方式二,laravelpassport1,安装composerrequirelaravel/passportinstalldatatablephpartisanmigratefromserviceconfigurationfileincompoerprojecttophpartisanpassport:installaddLaravel\Passport\HasApiTokenstraittoApp\User模型命名空间App\Models;useIlluminate\Contracts\Auth\MustVerifyEmail;使用Illuminate\Database\Eloquent\Factories\HasFactory;使用Illuminate\Foundation\Auth\User作为Authenticatable;使用Illuminate\Notifications\Notifiable;使用Laravel\Sanctum\HasApiTokens;类UserextendsAuthenticatable{使用HasApiTokens,HasFactory,可通知的;'guards'=>['web'=>['driver'=>'session','provider'=>'users',],'api'=>['driver'=>在文件config/auth.php'passport','provider'=>'users',]],需要在AuthServiceProvider的boot方法中调用Passport::routes方法,会颁发访问令牌,撤销访问令牌,客户端和私有访问令牌注册必要的路由命名空间App\Providers;使用Laravel\Passport\Passport;使用Illuminate\Support\Facades\Gate;使用Illuminate\Foundation\Support\Providers\AuthServiceProvider作为ServiceProvider;类AuthServiceProvider扩展ServiceProvider{publicfunctionboot(){$this->registerPolicies();护照::路线();}}passport服务器认证服务配置phpartisanpassport:client--password数据会重新生成并存入oauth_clients表2.客户端请求码:Route::get('/auth/password',function(\Illuminate\Http\请求$request){$http=new\GuzzleHttp\Client();$response=$http->post('http://http://mypassport.service.com/oauth/token',['form_params'=>['grant_type'=>'密码','client_id'=>'3','client_secret'=>'Yom4nnZUKVIwYQPOWjnoCh9LHFkZV3pKh83fQe0s','用户名'=>'aa@qq.com','密码'=>'abc123','scope'=>'*',],]);返回json_decode((string)$response->getBody(),true);});邮递员:以上就是整个laravelpassportoauth2安装配置总结1.passport安装配置完成后,使用它们引导路由请求,获取相关access_token;2.现在这只是一个简单的密码模式,并没有token过期时间,scope权限验证等,列举出来。下一部分将从源代码编写流程和逻辑。参考:https://laravelacademy.org/po...https://www.ruanyifeng.com/bl...
