156 lines
2.1 KiB
Markdown
156 lines
2.1 KiB
Markdown
# Explore Lumajang Authentication API
|
|
|
|
Base URL for local Android emulator:
|
|
|
|
```text
|
|
http://10.0.2.2:8000/api
|
|
```
|
|
|
|
Base URL for local backend:
|
|
|
|
```text
|
|
http://127.0.0.1:8000/api
|
|
```
|
|
|
|
## Register
|
|
|
|
`POST /register`
|
|
|
|
```json
|
|
{
|
|
"name": "Lumajang Traveler",
|
|
"email": "traveler@example.com",
|
|
"password": "password123",
|
|
"password_confirmation": "password123"
|
|
}
|
|
```
|
|
|
|
Success `201`:
|
|
|
|
```json
|
|
{
|
|
"status": true,
|
|
"message": "Registration successful. Please log in.",
|
|
"data": {
|
|
"user": {
|
|
"id": 1,
|
|
"name": "Lumajang Traveler",
|
|
"email": "traveler@example.com",
|
|
"created_at": "2026-05-14T06:30:00.000000Z"
|
|
}
|
|
}
|
|
}
|
|
```
|
|
|
|
## Login
|
|
|
|
`POST /login`
|
|
|
|
```json
|
|
{
|
|
"email": "traveler@example.com",
|
|
"password": "password123"
|
|
}
|
|
```
|
|
|
|
Success `200`:
|
|
|
|
```json
|
|
{
|
|
"status": true,
|
|
"message": "Login successful.",
|
|
"data": {
|
|
"token_type": "Bearer",
|
|
"token": "plain-text-mobile-token",
|
|
"user": {
|
|
"id": 1,
|
|
"name": "Lumajang Traveler",
|
|
"email": "traveler@example.com",
|
|
"created_at": "2026-05-14T06:30:00.000000Z"
|
|
}
|
|
}
|
|
}
|
|
```
|
|
|
|
## Profile
|
|
|
|
`GET /profile`
|
|
|
|
Header:
|
|
|
|
```text
|
|
Authorization: Bearer plain-text-mobile-token
|
|
```
|
|
|
|
Success `200`:
|
|
|
|
```json
|
|
{
|
|
"status": true,
|
|
"message": "User profile loaded.",
|
|
"data": {
|
|
"user": {
|
|
"id": 1,
|
|
"name": "Lumajang Traveler",
|
|
"email": "traveler@example.com",
|
|
"created_at": "2026-05-14T06:30:00.000000Z"
|
|
}
|
|
}
|
|
}
|
|
```
|
|
|
|
## Forgot Password
|
|
|
|
`POST /forgot-password`
|
|
|
|
```json
|
|
{
|
|
"email": "traveler@example.com"
|
|
}
|
|
```
|
|
|
|
Success `200`:
|
|
|
|
```json
|
|
{
|
|
"status": true,
|
|
"message": "Password reset instructions have been sent if the email is registered."
|
|
}
|
|
```
|
|
|
|
In local development, the reset token is written to Laravel logs. Configure SMTP before production email delivery.
|
|
|
|
## Logout
|
|
|
|
`POST /logout`
|
|
|
|
Header:
|
|
|
|
```text
|
|
Authorization: Bearer plain-text-mobile-token
|
|
```
|
|
|
|
Success `200`:
|
|
|
|
```json
|
|
{
|
|
"status": true,
|
|
"message": "Logout successful."
|
|
}
|
|
```
|
|
|
|
## Error Example
|
|
|
|
Validation errors use Laravel's standard `422` JSON format:
|
|
|
|
```json
|
|
{
|
|
"message": "The email field is required.",
|
|
"errors": {
|
|
"email": [
|
|
"The email field is required."
|
|
]
|
|
}
|
|
}
|
|
```
|