Mon Apr 13 2020
...
ืืืืจืช SSO ืขื FastComments
ืกืงืืจื ืืืืืช
ืื ืื SSO?
SSO, ืื ืื ืืกื ืืืืื, ืืื ืืืืื ืฉื conventions ืืืืคืฉืจืื ืื ืื ืืืฉืชืืฉืื ืฉืื ืืืฉืชืืฉ ื-FastComments ืืืื ืฆืืจื ืืืฆืืจ ืืฉืืื ื ืืกืฃ.
ืืื ืื ืฉืืื ื ืืืคืฉืจ ืืขืจืืช ืื ืื ืืืืืช, ื ืืจืฉ ืืฉืืื ืืื ืืืืกืืฃ ืชืืืืืช ืขื FastComments. ืื ืื ื ืขืืฉืื ืืช ืชืืืื ืืืจืฉืื ืืื ืืืื ืงื - ืืืฉืชืืฉ ืคืฉืื ืืฉืืืจ ืืช ืืชืืืช ืืืืืืื ืฉืื ืืฉืืฉ ืื ืชืืืื. ืขื ืืืช, ืื ืื ื ืืืื ืื ืฉืืคืืื ืื ืืื ืืืืื ื ืืกืฃ ืฉืืืง ืืืืชืจืื ืจืืฆืื ืืืืื ืข ืืื ื.
ืืื ืื ื ืืงืื ืืช ืื?
ืื ืกืืื ืืืฉืืื ืืช ืืจืืข ืืงืืืื ืืืฉื ื-SSO ืืื ืื ืชืืืื. ืขื ืืืช, ืืกืคืจ ืืืฉืชืืฉืื ืืืจืื ื-SSO ืฉืื ื ืืืชืื ืืืืืืชื.
ืืฉืชืืฉื WordPress
ืื ืืชื ืืฉืชืืฉ ืืชืืกืฃ ื- WordPress ืฉืื ื, ืื ืืื ืฆืืจื ืืืชืื ืงืื! ืคืฉืื ืขืืืจ ืืืฃ ืื ืืืื ืฉื ืืชืืกืฃ, ืืืฅ ืขื ืืืืจืืช SSO ืืื ืืคืขื.
ืื ืืืืื ืืืชื ืืืฉืฃ ืืืืืฆื ืืืช ืฉืืฆืืจ ืืช ืืคืชื ื-API ืฉืื, ืืฉืื ืืืชื ืืืชืงื ืช ื-WordPress ืฉืื ืืืคืขืื ืืช ื-SSO. ืจืืืื ื ืืช ืื ืืืืืฆื ืืืช ืืฉืืืื.
ืฉืืื ืื, ืื ืืชื ืืชืงืื ืืช ืืชืืกืฃ ืืคืขื ืืจืืฉืื ื, ืชืฆืืจื ืืขืืืจ ืืช ืชืืืื ืืืืืจื ืืคื ื ืฉืชืจืื ืืช ืืฃ ืื ืืืื ืขื ืืคืชืืจ ืืืืจืืช ื-SSO.
ืืื ืืืจืฆืืืช ืืืชืืืืช ืืืฉืืช
ื-SSO ืฉื FastComments ืืฉืชืืฉ ืืืฆืคื ืช HMAC-SHA256 ืืื ืื ืื ืืืืฉืื SSO. ืงืืื ื ืืื ืืืจืืืืงืืืจื ืืืืืืช, ื ืกืคืง ืืืืืืืช, ืืฆืขื ืืืจ ืฆืขื ืืคืืจืืื. ืขื ืืืช, ืืกืืฃ ืืืืจ ืื ืืฉ ืืืจืืืช ื-ืืืืจื ื-Disqus ื-Commento.
ืืืจืืื ื ืจืืืช ืื:
ืืชื ืื ืฆืจืื ืืืชืื ืฉืื ื ืงืืืืช ืงืฆื API ืืืฉืืช ืขื FastComments SSO. ืคืฉืื ืืฆืคื ืืช ืืืืืข ืฉื ืืืฉืชืืฉ ืืืืฆืขืืช ืืืคืชื ืืกืืื ืฉืื ื/pass ืืช ืืืืืข ื-widget ืืชืืืื.
ืื ืื ื ืืกืคืงืื ืืืืืืืช ืงืื ืคืื ืงืฆืืื ืืืืช ืืฉืคืืช/ืืจืฆืืช ืฉืื ืืช ืืืื NodeJS, Java/Spring, ื-PHP ืืืจืกืชื ืืืกืืกืืช. ืืืจืืช ืฉืื ืื ื ืืฉืชืืฉืื ื-ExpressJS ืืืืืืช NodeJS ืื-Spring ืืืืืืช Java, ืืื ืฆืืจื ืืืกืืจืช/ืกืคืจืืืช ืืืืชื ืืจืฆืืช ืืื ืืืืฉื ืืช FastComments SSO - ืืืืืืช ื-crypto ืืืงืืจืืืช ืขืืืืืช.
ืืชื ืืืื ืืืฆืื ืืช ืืืืจ ืืืืืืช ืืงืื ืืื:
ืืืืืืืช ืงืื ื-SSO ืฉื FastComments
ืงืืืช ืืคืชื ืืกืื ืฉื ื-API ืฉืื
ืืืคืชื ืืกืืื ืฉืื ื-API ื ืืชื ืืงืื ืืืฃ ืื ืืืฃ ืืื. ืืชื ืืืื ืืืฆืื ืืช ืืืฃ ืืื ืื ืขื ืืื ืืขืืจ ืืืฉืืื ืฉืื, ืืืืฆื ืขื ืืื ื-API/SSO ืืื ืืืฅ ืขื "ืงืืืช ืืคืชื ืกืืื ื-API".
ืคืจืืืจืื ื-widget ืืชืืืื
ืชืืขืื API ืืจืื ืืืืื ืขืืืจ widget ืืชืืืื ื ืืชื ืืืฆืื ืืื ืืืืืฆื ืขื "ืืฆื ืืคืฉืจืืืืช ืืชืงืืืืช". ืืคืฉ SSO ืืืฃ.
ืืื ื ืืื ืก ืืคืจืืื ื ืืกืคืื ืขื ืื ืืคืจืืืจืื ืืืื ืืืืจืื.
ื-widget ืืชืืืื ืืืงื ืืืืืืงื ืชืฆืืจื - ืืชื ืืืจ ืืขืืืจ ืืช ืื ืื ืืชื ืืฉืชืืฉ ื-FastComments ืืืขืืืจ ืืช ืืืื ืืืงืื ืฉืื (ื ืงืจื tenantId).
ืืื ืืืคืฉืจ SSO, ืืขืืจ ืืืืืืงื "sso" ืืืฉ, ืฉืืืืจืืื ืฉืืืื ืื ืืช ืืคืจืืืจืื ืืืืื. ืืขืจืืื ืฆืจืืืื ืืืืืืฆืจ ืืฆื ืืฉืจืช.
- userDataJSONBase64: ื ืชืื ื ืืืฉืชืืฉ ืืคืืจืื JSON, ืืฉืจ ืืืืืฉ ื-Base64.
- verificationHash: ืืืืฉื HMAC-SHA256 ืฉื ืืฆืจ ื-UNIX_TIME + userDataJSONBase64.
- timestamp: ืืืื ืื ืืืื ื-unix. ืืกืืจ ืืืืืช ืืขืชืื, ืื ืืืชืจ ืืฉืืืฉ ืฉืขืืช ืืขืืจ.
- loginURL: ืืชืืืช URL ืฉื-widget ืืชืืืื ืืืื ืืืฆืื ืืื ืืืืื ืก ืืืฉืชืืฉ.
- logoutURL: ืืชืืืช URL ืฉื-widget ืืชืืืื ืืืื ืืืฆืื ืืื ืืฆืืช ืืช ืืืฉืชืืฉ.
- loginCallback: ืืืฉืจ ื ืืชื ื ืืืงืื ืืชืืืช ื-URL ืฉื ืืืชืืืจืืช, ืคืื ืงืฆืื ืฉื-widget ืืชืืืื ืืืฆืข ืืืฉืจ ืืืืฆื ืขื ืืคืชืืจ ืืืชืืืจืืช.
- logoutCallback: ืืืฉืจ ื ืืชื ื ืืืงืื ืืชืืืช ื-URL ืฉื ืืืฆืืื, ืคืื ืงืฆืื ืฉื-widget ืืชืืืื ืืืฆืข ืืืฉืจ ืืืืฆื ืขื ืืคืชืืจ ืืืฆืืื.
ืืืืืืงื ืืืฉืชืืฉ
ืืืืืืงื ืืืฉืชืืฉ ืืืื ืืช ืืกืืืื ืืืื:
- id (ืืืจืืืช, ื ืืจืฉ) (1k ืชืืืื ืืงืกืืืื)
- email (ืืืจืืืช, ื ืืจืฉ) (1k ืชืืืื ืืงืกืืืื). ืืขืจื: ืืืื ืืืืืช ืืืืืื.
- username (ืืืจืืืช, ื ืืจืฉ) (1k ืชืืืื ืืงืกืืืื). ืืขืจื: ืฉื ืืืฉืชืืฉ ืื ืืืื ืืืืืช ืืื"ื. ืื ืืืื ืืืืืช ืืืืืื.
- avatar (ืืืจืืืช, ืืืคืฆืืื ืืืช) (3k ืชืืืื ืืงืกืืืื)
- optedInNotifications (ืืืืืื ื, ืืืคืฆืืื ืื)
- displayLabel (ืืืจืืืช, ืืืคืฆืืื ืืืช, 100 ืชืืืื ืืงืกืืืื). ืชืืืืช ืื ืชืืฆื ืืื ืฉืื.
- websiteUrl (ืืืจืืืช, ืืืคืฆืืื ืืืช, 2000 ืชืืืื ืืงืกืืืื). ืืฉื ืฉื ืืืฉืชืืฉ ืืงืฉืจ ืืื.
ืืืืขืืช
ืืื ืืืคืฉืจ ืื ืืืื ืืืืขืืช, ืงืืข ืืช ืืขืจื ืฉื optedInNotifications ื-true ืื false ืืืชืืื. ืืคืขื ืืจืืฉืื ื ืฉืืฉืชืืฉ ืืืขื ืืช ืืืฃ ืขื ืขืจื ืื ืื ืชืื ื ื-SSO, ืืืืจืืช ืืืืืขืืช ืฉืื ืืชืขืืื ื.
ืืฉืชืืฉืื VIP ืืชืืืืืช ืืืืืืืช
ืืชื ืืืื ืืืฆืื ืชืืืืช ืืืืืืช ืืื ืฉืื ืฉื ืืืฉืชืืฉ ืขื ืืื ืฉืืืืฉ ืืฉืื ื-"displayLabel" ืืืืคืฆืืื ืื.
ืืฉืชืืฉืื ืื ืืืืืชืื
ืืื ืืืืฆื ืืฉืชืืฉ ืื ืืืืืช, ืคืฉืื ืื ืชืืื ืืช userDataJSONBase64, verificationHash, ืื timestamp. ืกืคืง loginURL.
ืืืืืืืช ืืฉืืจืืช ืืกืืืืจ ืืืืฉืืช ื ืชืื ื ืืฉืชืืฉ
ืคืจืืื ื ืืกืคืื ืืืืืืืช ืืื (js), ืืื (java) ื ืืื (php).
ืืืจื ื-Disqus SSO
ืืืืืืื ืืืืืืื ืืืืชืจ ืืื Disqus ื-SSO ืฉื FastComments ืื ืฉ-Disqus ืืฉืชืืฉืช ื-SHA1 ืืืฆืคื ื ืืืื ืฉืื ื ืืฉืชืืฉืื ื-SHA256. ืื ืืืืจ ืฉืืืืืจื ื-Disqus ืืื ืงืื - ืคืฉืื ืฉื ื ืืช ืืืืืจืืชื ืืืืฉื ืืฉ SHA1 ื-SHA256 ืืขืืืื ืืช ืฉืืืช ืืืืคืืื ืื ืฉืขืืืจืื ื-UI.
ืืืจื ื-Commento SSO
Commento ืืฉืชืืฉืช ืืืืฉื ืฉืื ื ืืืืืืื ื-SSO - ืื ืืืจืฉืื ืืื ืฉืชืืื ื ืงืืืช ืงืฆื ืฉืชืคืขืืื ืืื ืืืืช ืืช ืืืฉืชืืฉ. FastComments ืืื ืืืคื - ืจืง ืืฉ ืืงืืื ืืืืืฉื ืืช ืืืืืข ืฉื ืืืฉืชืืฉ ืืืืฆืขืืช ืืืคืชื ืืกืืื ืฉืื ืืืืืฉ ืืืชื ืืืื.
ืื ืื ื ืืืื ืื ืฉืื ืืื ืืืจืฆืื ืืืืื ืืืืืช ืชืืืื ืืกืืื ืืืืื. ืื ืชืืกืก ืืคื ืืช ืื ืฆืื ืฉืื ืื ืืืฉืชืืฉ ืืืฃ ืืชืืืื.
