티스토리 뷰
온라인 토큰? 오프라인 토큰?
Shopify는 본래 access_token으로
오프라인 토큰
만이 존재했다. 오프라인 토큰이란 쇼핑몰 관리자가 쇼핑몰에 앱을 설치한 시점에 모든 권한 위임이 발생하면서 오직 하나의(재발급 요청이 없는 한) access_token으로 모든 로그인한 사용자가 같은 권한으로 앱의 기능을 사용하는 형태이다. (앱이 관리자에 의해 삭제될 때까지 유효하다.)하지만 사용자에 따라 앱이 제공하는 기능을 제한할 필요가 있다. 앱 단위가 아닌 이러한 사용자 단위의 권한 위임을 제공하기 위한 방법으로
온라인 토큰
이 도입되었다. (2016-10-20 적용) [관련 링크] 온라인 토큰 사용의 대표 사례는Orders Printer
앱이다. 현재 로그인한 사용자에 따라 사용할 수 있는 기능에 제한이 있다.온라인 토큰은 access_token의 수명이 사용자의 로그인 수명과 일치한다. 사용자 로그인부터 로그아웃 시점까지와 같은 유효 시간을 가진다. 따라서 refresh_token은 지원되지 않는다. [관련 링크]
결론적으로 오프라인 토큰과 온라인 토큰은 선택의 문제이다. 사용자 단위로 권한을 제한해야 한다면 사용자 로그인 시점에 온라인 토큰을 요청하면 되고 모두가 같은 권한을 가진다면 기존대로 오프라인 토큰을 요청하면 된다.
보안
Shopify에서 사용자가 앱에 대한 권한 위임에 동의하면 앱 서버(앱 등록시 정의된
redirect_uri
)로 리다이렉트 요청이 발생한다. 이 시점에 쿼리스트링 으로hmac
파라메터가 첨부되는데 앱 서버 입장에서는 이 리다이렉트 요청이 진짜 Shopify가 보낸 것인지 여부를 판단하는 서명 정보로 이용할 수 있다. [관련 링크]hmac 파라메터의 정체는 쿼리스트링에서 hmac 자신을 제외한 나머지 모든 파라메터를
HMAC-SHA256
으로 해시된 서명 문자열이다. 해시 생성에 사용되는 secret_key는 바로 앱 등록시 발급 받은secret_key
이다. secret_key는 앱 개발자만 알 수 있는 개인키이다.- Shopify는 본래 이러한 서명으로
MD5
방식의 signature 파라메터를 제공했으나 보안 강화를 위해 2015-06-01 부로 HMAC-SHA256 방식의 hmac 파라메터로 변경되었다. [관련 링크]
참고 글
- Total
- Today
- Yesterday
- 구동계
- maven
- jpa
- 로드바이크
- kotlin
- 평속
- DynamoDB
- MySQL
- 알뜰폰
- CentOS
- Kendo UI Web Grid
- jsp
- 로드 바이크
- Tomcat
- Eclipse
- JavaScript
- java
- 태그를 입력해 주세요.
- Kendo UI
- Docker
- Spring Boot
- jstl
- 자전거
- chrome
- Spring MVC 3
- bootstrap
- node.js
- graylog
- JHipster
- spring
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |