API Documentation

Base URL
https://neuroworkplay.com//api
POST
/api/login

Autenticar usuário e obter token JWT

Request Body:
{ "email": "user@example.com", "password": "123456" }
Response (Success):
{ "success": true, "message": "Login realizado com sucesso", "data": { "user": { "id": 1, "name": "João Silva", "email": "user@example.com", "is_admin": 0, "is_active": 1 }, "token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9..." } }
POST
/api/register

Registrar novo usuário

Request Body:
{ "name": "João Silva", "email": "joao@example.com", "password": "senha123" }
POST
/api/check-access

Verificar se usuário tem acesso a um game

Requer autenticação: Header Authorization: Bearer {token}
Request Body:
{ "game_id": 1 }
Response:
{ "success": true, "message": "Verificação de acesso", "data": { "has_access": true, "game": { "id": 1, "name": "Space Adventure", "version": "1.0.0" } } }
GET
/api/user/games

Listar games que o usuário tem acesso

Requer autenticação: Header Authorization: Bearer {token}
GET
/api/user

Obter dados do usuário autenticado

Requer autenticação: Header Authorization: Bearer {token}
Exemplo de Integração Unity

Exemplo básico de como usar a API no Unity:

using UnityEngine; using UnityEngine.Networking; using System.Collections; public class GameAuthManager : MonoBehaviour { public string apiBaseUrl = "https://neuroworkplay.com//api"; private string authToken; public void Login(string email, string password) { StartCoroutine(LoginCoroutine(email, password)); } private IEnumerator LoginCoroutine(string email, string password) { var loginData = new { email = email, password = password }; string json = JsonUtility.ToJson(loginData); using (UnityWebRequest request = UnityWebRequest.Post(apiBaseUrl + "/login", json, "application/json")) { yield return request.SendWebRequest(); if (request.result == UnityWebRequest.Result.Success) { var response = JsonUtility.FromJson<LoginResponse>(request.downloadHandler.text); if (response.success) { authToken = response.data.token; Debug.Log("Login realizado com sucesso!"); } } } } public void CheckGameAccess(int gameId) { StartCoroutine(CheckAccessCoroutine(gameId)); } private IEnumerator CheckAccessCoroutine(int gameId) { var accessData = new { game_id = gameId }; string json = JsonUtility.ToJson(accessData); using (UnityWebRequest request = UnityWebRequest.Post(apiBaseUrl + "/check-access", json, "application/json")) { request.SetRequestHeader("Authorization", "Bearer " + authToken); yield return request.SendWebRequest(); if (request.result == UnityWebRequest.Result.Success) { var response = JsonUtility.FromJson<AccessResponse>(request.downloadHandler.text); if (response.data.has_access) { Debug.Log("Usuário tem acesso ao game!"); // Liberar acesso ao conteúdo do game } else { Debug.Log("Usuário não tem acesso ao game!"); // Mostrar tela de bloqueio } } } } }