CA.swift #8 Protect against unauthorized use with RxSwift

CA.swift #8 Protect against unauthorized use with RxSwift

RxSwift を用いた設計で、配信コンテンツを不正利用から守る

Eae7b6aeee72d3081b01d09a2d675f9a?s=128

Akio Itaya

March 06, 2019
Tweet

Transcript

  1. ഑৴ίϯςϯπΛෆਖ਼ར༻͔ΒकΔ AKKEY / AKIO ITAYA MatchingAgent, Inc. RxSwiftΛ༻͍ͨઃܭͰ

  2. ໊લɿ൘୩ ߊྑɹ/ɹ͖͋ͬʔ झຯɿυϥΠϒ ׆ಈɿ@AkkeyLab Cyberagent, Inc. MatchingAgent, Inc. େֶೖֶޙϓϩάϥϛϯάʹҰ໨ࠍΕɺ18೥৽ଔ iOS

    ΤϯδχΞ ࣗݾ঺հ
  3. None
  4. ୊ ࡐ

  5. None
  6. ୊ࡐ ◆ ಈըࢹௌϓϥοτϑΥʔϜ ◆ ެ։લ ݸਓ։ൃΞϓϦ ◆ ࠓճαʔόଆʹ͸৮Ε·ͤΜ

  7. ಋೖٕज़

  8. ಋೖٕज़ʢClient onlyʣ RxSwift VueFlux Moya Realm Travis CI CodeCov GitHub

  9. Architecture

  10. Architecture State Computed VC Actions Mutations VM

  11. State Computed VC API Request Actions Mutations VM Architecture

  12. State Computed VC API Request Response Routing Actions Mutations VM

    Architecture
  13. State Computed VC API Request Response Routing Actions Mutations VM

    Implement some properties Architecture
  14. State Computed VC API Request Response Routing Actions Mutations VM

    Output Observable Implement some properties Architecture
  15. State Computed VC API Request Response Routing Actions Mutations VM

    Output Observable Input / Output Logic Implement some properties Architecture
  16. State Computed VC API Request Response Routing Actions Mutations VM

    Output Observable Input / Output Logic Implement some properties Architecture
  17. State Computed VC API Request Response Routing Actions Mutations VM

    Output Observable Input / Output Logic Implement some properties Architecture
  18. State Computed VC API Request Response Routing Actions Mutations VM

    Output Observable Input / Output Logic Implement some properties Architecture
  19. લఏ৚݅

  20. લఏ৚݅ ◆ API Response 1. ਺݅ͷಈը৘ใΛऔಘ

  21. લఏ৚݅ ◆ API Response ෆมͷID 1. ਺݅ͷಈը৘ใΛऔಘ

  22. લఏ৚݅ ◆ API Response ෆมͷID 2. IDΛPrimaryKeyͱͯ͠VideoLinkΛऔಘ 1. ਺݅ͷಈը৘ใΛऔಘ

  23. State Computed VC API Request Response Routing Actions Mutations VM

    Output Observable Input / Output Logic Implement some properties ಈը࠶ੜ·Ͱʹ ̎ϧʔϓͯ͠Δ ʢॳճʹݶΓʣ Architecture
  24. ಈըίϯςϯπͷอޢ

  25. ಈըίϯςϯπͷอޢ URL ͕όϨΔͱෆਖ਼ Download ͷՄೳੑ

  26. ಈըίϯςϯπͷอޢ ◆ ఆظత URL มߋ ◆ IP ΞυϨε੍ݶ ◆ ҉߸Խ

  27. ಈըίϯςϯπͷอޢ ◆ ఆظత URL มߋ ◆ IP ΞυϨε੍ݶ ◆ ҉߸Խ

  28. ಈըίϯςϯπͷอޢ ຖ࣌ ݕࡧ A B C D 1 2 3

    4 1A 1B 4C 4D ߋ৽ ◆ ఆظత URL มߋ
  29. ಈըίϯςϯπͷอޢ A B C D 1 1A 1B 4C 4D

    ຖ࣌ ݕࡧ ߋ৽ ◆ ఆظత URL มߋ 2 3 4
  30. ಈըίϯςϯπͷอޢ A B C D 1 1A 1B 4C 4D

    ຖ࣌ ݕࡧ ߋ৽ ◆ ఆظత URL มߋ 2 3 4
  31. ಈըίϯςϯπͷอޢ ◆ ఆظత URL มߋ A B C D 1

    1A 1B 4C 4D ຖ࣌ ݕࡧ ߋ৽ 2 3 4
  32. ಈըίϯςϯπͷอޢ A B C D 1 1A 1B 4C 4D

    ຖ࣌ ݕࡧ ߋ৽ ◆ ఆظత URL มߋ 2 3 4
  33. withLatestFrom

  34. ఆظతURLมߋ ຖ࣌ ݕࡧ A B C D 1 1A 1B

    4C 4D ߋ৽ ◆ withLatestFrom 2 3 4
  35. ఆظతURLมߋ

  36. ఆظతURLมߋ

  37. ఆظతURLมߋ

  38. ఆظతURLมߋ

  39. ಈըίϯςϯπͷอޢ ◆ ఆظత URL มߋ ϥάͰݟΕͳ͍Մೳੑ͋Γ ൺֱత؆୯ͳ࣮૷

  40. ಈըίϯςϯπͷอޢ ◆ ఆظత URL มߋ ◆ IP ΞυϨε੍ݶ ◆ ҉߸Խ

  41. ಈըίϯςϯπͷอޢ IPมԽ ݕࡧ A B C D 1 2 3

    4 1B 3C 4D ߋ৽ ◆ IP ΞυϨε੍ݶ
  42. ಈըίϯςϯπͷอޢ IPมԽ ݕࡧ A B C D 1 2 3

    4 1B 3C 4D ߋ৽ ◆ IP ΞυϨε੍ݶ
  43. ಈըίϯςϯπͷอޢ IPมԽ ݕࡧ A B C D 1 2 3

    4 1B 3C 4D ߋ৽ ◆ IP ΞυϨε੍ݶ
  44. ಈըίϯςϯπͷอޢ IPมԽ ݕࡧ A B C D 1 2 3

    4 1B 3C 4D ߋ৽ ◆ IP ΞυϨε੍ݶ
  45. withLatestFrom

  46. IPΞυϨε੍ݶ ◆ withLatestFrom IPมԽ ݕࡧ A B C D 1

    2 3 4 1B 3C 4D ߋ৽
  47. IPΞυϨε੍ݶ

  48. ಈըίϯςϯπͷอޢ ◆ IP ΞυϨε੍ݶ IPมԽݕ஌ͷਫ਼౓ʹࠨӈ͞ΕΔ ൺֱత࣮༻తͳͷͰ͸ʁ

  49. ஥ؒΛ͝঺հ

  50. ஥ؒΛ͝঺հ ຖ࣌ ݕࡧ A B C D 1 1A 1B

    4C 4D ߋ৽ ◆ combineLatest 2B 3B 2 3 4
  51. ஥ؒΛ͝঺հ ຖ࣌ ݕࡧ A B C D 1 1A 1B

    4C 4D ߋ৽ ◆ combineLatest 2B 3B 2 3 4
  52. combineLatest

  53. combineLatest

  54. combineLatest

  55. ಈըίϯςϯπͷอޢ ◆ ఆظత URL มߋ ◆ IP ΞυϨε੍ݶ ◆ ҉߸Խ

  56. ಈըίϯςϯπͷอޢ ◆ ҉߸Խ https://akkeylab.com/s=&…

  57. ಈըίϯςϯπͷอޢ ◆ ҉߸Խ ղಡ๏͸͋ΔͷͰ݁ہᴟͬ͜͝ ڧྗͰ࣮༻త https://akkeylab.com/s=&… ͍ͨͪ

  58. ຊ೔ͷొ৔ਓ෺ ◆ withLatestFrom ◆ combineLatest

  59. ຊ೔ͷొ৔ਓ෺ ◆ withLatestFrom ◆ combineLatest ◆ tapple

  60. Thank you !!