vikkio88/slime

View on GitHub
Actions/User/Login/TokenLogin.php

Summary

Maintainability
A
0 mins
Test Coverage
<?php


namespace App\Actions\User\Login;


use App\Lib\Helpers\JwtHelper;
use App\Lib\Helpers\TokenHelper;
use App\Lib\Slime\Exceptions\Http\UnAuthorizedException;
use App\Lib\Slime\RestAction\ApiAction;
use App\Models\Users\UserToken;

class TokenLogin extends ApiAction
{

    protected function performAction()
    {
        $userToken = UserToken::getByLoginToken(
            $this->args['token'],
            $this->request->getAttribute('ip_address')
        );

        if (empty($userToken)) {
            throw new UnAuthorizedException('Expired link');
        }

        $this->payload = [
            'token' => JwtHelper::encode(
                TokenHelper::getTokenPayload($userToken->user_id)
            )
        ];
    }
}