MIF_E31231623/website/wisata_web/docs/api-auth.md

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."
]
}
}
```