calderawp/laravel-wp-user

使用WordPress进行认证,在Laravel应用程序中进行用户管理

0.2.0 2017-07-06 15:23 UTC

This package is auto-updated.

Last update: 2024-08-25 23:34:49 UTC


README

使用WordPress站点作为Laravel应用程序的认证提供者。

还可以作为WordPress REST API客户端。

目标和状态

  • 从Laravel认证为WordPress用户 - 完成。
  • 提供从Laravel查询WordPress REST API的API客户端 - 完成。
  • 提供基于WordPress的中间件。 - 下一步

用法

设置WordPress

此库可以使用其他认证系统,但仅实现了JWT。

将WordPress登录添加到您的应用程序

  • 配置

    • 发布配置并设置WordPress站点的URL,或在.env中使用WPUSERWPURL
    • URL必须包含/wp-json/(或您使用的任何内容),并且带有尾随斜杠。
  • 添加登录路由,例如

Route::post('/wp-login', function( \calderawp\WPUser\JWTAuthenticator $authenticator, \Illuminate\Http\Request $request ){
	if( $request->has( 'username' ) && $request->has( 'password' ) ){
		if( $authenticator->login( $request->input( 'username'), $request->input( 'password' ) ) ){
			$user = \calderawp\WPUser\Model\Model::fromAuth( $authenticator );
		}

		//return an error;
	}
});

注意

  • 这使用该软件包中的用户模型。未提供迁移以保存。
  • 您可以将WP用户与令牌一起保存在数据库中。

用户认证示例

    //SUPER IMPORTANT to use a trialing slash after wp-json
    $wpApiUrl = 'https://roysivan.com/wp-json/';
    $authClient = \calderawp\WPUser\Factory::jwtAuthenticator( $wpApiUrl, [ 
        //args to pass to constructor of GuzzleHttp\Client
     ] );
     
    //BTW- in local testing, might want to set verify false
    // $authClient = \calderawp\WPUser\Factory::jwtAuthenticator( $wpApiUrl, [ 'verify' => false ] );


    //authenticate
    if( $authClient->login( 'josh', '12345' ) ){
        $api = \calderawp\WPUser\Factory::jwtAuthenitcated( $wpApiUrl, $authClient->getUser(), 
            [ 
                //args to pass to constructor of GuzzleHttp\Client
             ] 
        );
        $me = $api->me();
    }

许可

版权所有 2017 CalderaWP LLC。根据GNU GPL V2+的条款许可。请与您的邻居分享。