메뉴

Registration

2016년 5월 23일 - Authentication

Endpoint

POST /{api_version}/auth/register

POST Parameters

[
	'type' => ['required', 'in:email,facebook,instagram'],
	'email' => ['required', 'max:255', 'email', 'unique:users,email'],
	'username' => ['required', 'max:255', 'regex:/^[ㄱ-ㅎ가-힣A-Za-z0-9]+[ㄱ-ㅎ가-힣A-Za-z0-9-_\.]*[ㄱ-ㅎ가-힣A-Za-z0-9]+$/', 'unique:users,username'],
	'gender' => ['required', 'in:0,1'],
	'user_agreement' => 'required',

	/*TODO: Add additional validation rules for the profile_picture field*/
	'profile_picture' => ['sometimes', 'image'],

	/*Email registration*/
	'password' => ['required_if:type,email', 'min:8'],

	/*FB registration*/
	'fb_user_id' => ['required_if:type,facebook'],
	'fb_access_token' => ['required_if:type,facebook'],

	/*Instagram registration*/
	'ig_user_id' => ['required_if:type,instagram'],
	'ig_access_token' => ['required_if:type,instagram'],
]

type

필수 파라미터이며, ’email’, ‘facebook’, ‘instagram’ 중 하나의 값과 같아야 합니다.

email

필수 파라미터이며, 이메일 형식이어야 하고, 최대 길이는 255자 입니다. users table에 저장된 email 칼럼 값 중에서 중복되는 것이 없어야 합니다.

username

필수 파라미터이며, 최대 길이는 255자 입니다. /^[ㄱ-ㅎ가-힣A-Za-z0-9]+[ㄱ-ㅎ가-힣A-Za-z0-9-_\.]*[ㄱ-ㅎ가-힣A-Za-z0-9]+$/ regex 패턴과 일치해야 하고, users table에 저장된 username 칼럼 값 중에서 중복되는 것이 없어야 합니다. 최대 길이는 255자 입니다.

gender

필수 파라미터이며, 여성인 경우 0, 남성인 경우 1의 값을 가집니다.

user_agreement

필수 파라미터이며, 값은 'on'이어야 합니다.

profile_picture

파라미터가 존재하는 경우 이미지 파일(jpeg, png, gif)이어야 합니다.

password

type 파라미터의 값이 ’email’인 경우 필수 파라미터 입니다. 최소 길이는 8자 입니다.

fb_user_id

type 파라미터의 값이 ‘facebook’인 경우 필수 파라미터 입니다. Facebook API를 이용하여 조회한 사용자의 Facebook ID 값 입니다.

fb_access_token

type 파라미터의 값이 ‘facebook’인 경우 필수 파라미터 입니다. Facebook API를 이용하여 발급 받은 사용자의 access token 값 입니다.

ig_user_id

type 파라미터의 값이 ‘instagram’인 경우 필수 파라미터 입니다. Instagram API를 이용하여 조회한 사용자의 Instagram ID 값 입니다.

ig_access_token

type 파라미터의 값이 ‘instagram’인 경우 필수 파라미터 입니다. Instagram API를 이용하여 발급 받은 사용자의 access token 값 입니다.

Response Structure

이 Endpoint는 처리 결과에 따라 아래 3가지 응답을 반환합니다.

새로운 사용자를 생성한 경우

HTTP Status Code: 200: OK

응답 예시:

{
	"meta": {
		"code": 200
	},
	"data": {
		"user": {
			"id":"#",
			...
			"api_token":"{API 토큰}"
		}
	}
}

POST 파라미터가 유효하지 않은 경우

HTTP Status Code: 422: Unprocessable Entity

응답 예시:

{
	"meta": {
		"code": 422,
		"error_type": "ValidationException",
		"error_message": "Unprocessable Entity"
	},
	"data": {
		"{파라미터}": [
			"{에러 메세지.}"
		]
	}
}

새로운 사용자 모델 및 관련 모델을 저장하는 데에 실패한 경우

HTTP Status Code: 500: Internal Server Error

응답 예시:

{
	"meta": {
		"code": 500,
		"error_type": "InternalServerError",
		"error_message": "Failed to commit transaction."
	},
	"data":[]
}