rwandabuild/murugo_api_auth

使用Murugo认证的包,仅使用API结构即可用于所有第三方Laravel项目

v2.6.2 2023-10-09 08:16 UTC

README

Issues Stars Total Downloads

使用此包进行Murugo认证,仅使用API结构即可用于所有第三方Laravel项目

按照以下步骤开始使用

1. 通过以下命令安装包

composer require rwandabuild/murugo_api_auth

2. 在配置服务文件中包含以下变量

    'murugo' => [
        'client_id' => env('MURUGO_CLIENT_ID'),
        'client_secret' => env('MURUGO_CLIENT_SECRET'),
        'redirect' => env('APP_REDIRECT_URL', 'YOUR LOGIN REDIRECT URL'),
        'murugo_url' => env('MURUGO_URL', 'MURUGO_URL'),
        'murugo_app_key' => env('MURUGO_APP_KEY'),
    ],

3. 当您想升级时,不要忘记通过以下命令发布您的迁移

php artisan vendor:publish

4. 使用以下迁移

php artisan migrate

5. 添加方法将用户重定向到Murugo

   use RwandaBuild\MurugoAuth\Facades\MurugoAuth;


    public function redirectToMurugo()
    {
        return MurugoAuth::redirect();
    }

6. 添加回调方法用于重定向后使用

   use RwandaBuild\MurugoAuth\Facades\MurugoAuth;


    public function murugoCallback()
    { 
        $murugoUser = MurugoAuth::user()
    }

7. 包还提供了以下方法

    /**
     * This one is used by client(mobile) to authenticate murugo users on their 3rd party servers
     */
   use RwandaBuild\MurugoAuth\Facades\MurugoAuth;
   $tokens = [
               'access_token' => 'murugo_user_access_token'],
              'refresh_token' => 'murugo_user_refresh_token',
              'expires_in' => integer
   ],
   $murugoUser = MurugoAuth::userFromToken($tokens);

8. 添加用户和Murugo用户模型之间的关系

  • 包中已经内置了一个特质,用于在用户模型和Murugo用户模型之间建立关系
    use RwandaBuild\MurugoAuth\Traits\MurugoAuthHelper;
    class User extends Authenticatable
    {
      use MurugoAuthHelper;
    }
  • 要访问Murugo用户,当您已经有如下用户模型时
    $user = User::find(1);
    // access the relationship
    $murugoUser = $user->murugoUser;
  • 当您有一个Murugo用户模型,并且需要获取相关用户时,可以按照以下方式操作
$murugoUser = MurugoAuth::user();
// accessing the related user
$user = $murugoUser->user;

注意:默认情况下,包使用App\User模型或App\Models|user来建立您与Murugo用户模型之间的关系

9. 在此步骤中,这是刷新令牌的方式

首先,您应该知道Murugo用户模型保留了access_tokenrefresh_tokentoken_expires_at,现在,如果您需要刷新现有令牌,只需按照以下方式操作

$user = User::find(2);

// refreshing murugo user token

$murugoUser = MurugoAuth::refreshToken($user->murugoUser);

默认情况下,包将添加以下API路由到您的Laravel项目中

  • api/murugo-auth >>> 此路由将用于获取Murugo发送的响应并将其保存到您的Laravel项目数据库中
  • api/authenticate-user >>> 此路由将通过检查用户的uuid和令牌的有效性来认证用户,如果为真,则返回用户对象
  • api/logout >>> 此路由将使Murugo服务器上的用户注销

关注RwandaBuild并联系我们