sayren Docs
구매자

구매자 위임

셀러 서비스에서 로그인한 사용자를 구매자 토큰(30분, refresh 없음)으로 바꾼다. `uid`(셀러 자체 사용자 id) 또는 `email`로 지목하고 처음 보는 사용자면 구매자를 만든다. 필수 동의는 셀러 서비스에서 받았다고 보고 위임 이력을 남긴다. 계정 액세스 토큰과 1st-party 로그인 토큰만 부를 수 있고(역할 스코프 `customer:rw` + 토큰 스코프 `member:delegate`), 에이전트와 3rd-party 앱은 거부된다.

POST
/v1/customers/delegations

셀러 서비스에서 로그인한 사용자를 구매자 토큰(30분, refresh 없음)으로 바꾼다. uid(셀러 자체 사용자 id) 또는 email로 지목하고 처음 보는 사용자면 구매자를 만든다. 필수 동의는 셀러 서비스에서 받았다고 보고 위임 이력을 남긴다. 계정 액세스 토큰과 1st-party 로그인 토큰만 부를 수 있고(역할 스코프 customer:rw + 토큰 스코프 member:delegate), 에이전트와 3rd-party 앱은 거부된다.

Authorization

accessToken
headerAuthorizationBearer <token>

Sayren 계정 토큰(로그인 토큰 또는 개인 액세스 토큰, RFC 9068 JWT)

Header Parameters

X-Store-Id*string

대상 상점 id. 토큰의 상점 범위 밖이면 403 STORE_NOT_GRANTED, 없으면 400 STORE_ID_REQUIRED다

Request Body

application/json
  1. body

구매자 위임 요청

uid?string

셀러 자체 인증의 사용자 id(1~128자, 영문·숫자·._:@|-). 처음 보는 id면 구매자를 만든다

Match^[A-Za-z0-9._:@|-]{1,128}$
email?string

uid가 없으면 이메일로 지목한다. uid와 함께 주면 처음 만들 때의 이메일이다

Match^(?:[A-Za-z0-9_'+\-]+\.)*[A-Za-z0-9_'+\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$
Formatemail
Lengthlength <= 254
name?string

처음 만들 때의 이름

Lengthlength <= 50
authenticatedAt?string

사용자가 셀러 서비스에서 실제로 로그인한 시각(uid 위임만). 주면 구매자 토큰의 인증 시각이 된다

Match^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
Formatdate-time

Response Body

성공

application/json
  1. response
meta*
data*

구매자 위임 결과

error*|null
curl -X POST 'https://api.sayren.io/v1/customers/delegations' \  -H 'X-Store-Id: string' \  -H 'Content-Type: application/json' \  -d '{}'
{  "meta": {    "status": 201,    "code": "OK",    "message": "OK",    "isSuccess": true  },  "data": {    "accessToken": "string",    "tokenType": "Bearer",    "expiresIn": 0,    "memberId": "string"  },  "error": null}