Why is JWT popular?

แชร์
ฝัง
  • เผยแพร่เมื่อ 20 พ.ย. 2024

ความคิดเห็น •

  • @sandipb
    @sandipb 11 หลายเดือนก่อน +300

    Important thing to remember, is that when an user logs out, the JWT is still usable. The log out process just removes it from client cookies/local storage. So unless the server application has implemented token blacklisting on logout, a malware can still use the jwt till it expires.

    • @M3t4lstorm
      @M3t4lstorm 11 หลายเดือนก่อน +12

      Sure if you don't implement it properly, but that goes for everything, so...

    • @EtailaxiA
      @EtailaxiA 11 หลายเดือนก่อน

      How about just add a table call "signout_jwt" on db, add it on the table when user signout, than check when log in, if find that is on the db than reject the sign in. After the jwt is timeout, than delete it from the db 🤔

    • @imsergiohere
      @imsergiohere 11 หลายเดือนก่อน +26

      Not with OpenID wich exposes a /logout endpoint. Also, JWT MUST MUST MUST be used to identify YOU, but not to AUTHORIZE you.
      system: OK so you say that you are Sandipb, let me check and I will store your sesssion if true. OK, this is you, nice, I'm going to check that you are authorized to do this. OK, go for it. Next time I will not go to identity server to check your token, they can callback me if you logout.

    • @backdownhipi
      @backdownhipi 10 หลายเดือนก่อน +8

      This is why its best to only allow a jwt a 5 minute window, at which point a new jwt needs to be authed before more api use.

    • @fcnealvillangca7943
      @fcnealvillangca7943 10 หลายเดือนก่อน +4

      @@backdownhipi isn't this will make your user log in every 5 minutes? I still don't get the essence of refresh token for this

  • @rasmusjensen8219
    @rasmusjensen8219 11 หลายเดือนก่อน +39

    This is a good intro to JWTs. Although, I do think that JWT, oauth and oidc is being somewhat mixed together. JWT's does not necessarily provide authorization or authentication. JWT is just a standard for signing JSON claims.

    • @wovasteengova
      @wovasteengova 10 หลายเดือนก่อน +1

      So can we set a time on the User when they log out so that if a request comes in and we validate that the user is logged in. First. But there would have to way to store JWT on db huh.

  • @ReflectionOcean
    @ReflectionOcean 11 หลายเดือนก่อน +17

    - Understand JWT structure and usage (0:34)
    - Ensure sensitive payload data is encrypted (2:02)
    - Choose the right signing algorithm for your needs (2:17)
    - Implement best practices for JWT security (4:02)

  • @neeleshsalian1912
    @neeleshsalian1912 11 หลายเดือนก่อน +50

    It amazed me when I heard it is pronounced as "jot"

    • @kjyu4539
      @kjyu4539 11 หลายเดือนก่อน +14

      that is disgusting 😡

    • @pineappl3pizzzasoju
      @pineappl3pizzzasoju 11 หลายเดือนก่อน +14

      For me:
      json => JAY-SONG(silent G)
      jwt => J.W.T

    • @sourabhmunjal3830
      @sourabhmunjal3830 4 หลายเดือนก่อน +2

      It’s actually pronounced JOT in programming world

  • @calebracey
    @calebracey 28 วันที่ผ่านมา

    This is by far the best description of the pros cons and implications of JWT use and the different flavours that i have seen. Balanced simple and factual

  • @alananisimov
    @alananisimov 15 วันที่ผ่านมา

    Nice short and informative video. Nice to hear an explanation of under-the-hook work of JWT's and comparison with Session-based auth. Thanks for the video!

  • @animanaut
    @animanaut 11 หลายเดือนก่อน +5

    one antipattern i witnessed is to put stuff into the payload that would rather belong into a rest path. like a for example GET for a particular resource where the resource key/resource had to be provided via payload instead of rest path. there is potential for missuse like that too, not only security.

  • @Jen-kx3oh
    @Jen-kx3oh 9 หลายเดือนก่อน +5

    technically accurate but low effort video. also doesn't really address the title, explaining why there is popularity over other mechanisms (any relationship to sessions, cookies, etc would be a good start). would have appreciated more detail on why token revocation is "difficult", key management, different types of claims (you're really just gonna say what one of them is, and just vaguely??), any examples of weak vs strong hashing algorithms, the baseline assumption that this is all over https, etc, i could go on.. and i don't believe adding any of this would drastically increase the video length or complexity, considering the graphical density.. wish some of the animation was used for any of these things.

  • @maratchardymov2690
    @maratchardymov2690 11 หลายเดือนก่อน +16

    Nice video, but I'd love to see comparison with cookies, for example cookies are used as default session store in Rails and can be stateless as JWT

    • @aakarshan4644
      @aakarshan4644 11 หลายเดือนก่อน +3

      cookies are difficult in case of microservice authentication

    • @ldelossantos
      @ldelossantos 11 หลายเดือนก่อน +5

      The cookies are good for browsers, they are handle automatically by then, and modern implementation allows you to hide the cookie from JS for example, avoiding for example to allow somene to stole your session with script injection flaws. But JWT is really easy to implement in any layer, APIs are not only between your browser and your server, are also server trough server, if you try to handle cookies in your server code you will realize the difference.

    • @OverG88
      @OverG88 11 หลายเดือนก่อน +1

      Cookies have nothing to do with JWT, even with sessions.

    • @HelloThere-xs8ss
      @HelloThere-xs8ss 11 หลายเดือนก่อน +1

      please read what a cookie is.

  • @smritisharan-sfdcamplified
    @smritisharan-sfdcamplified 7 หลายเดือนก่อน +3

    excellent work and presentation. May i ask which TOOL HAS BEEN USED FOR ANIMATION?

  • @tinnick
    @tinnick 11 หลายเดือนก่อน +2

    As third party cookies are being deprecated in favor of FedCM, even with JWT we will not be able to implement SSO around mid 2024.
    JWT can still be used for logins without SSO though.

  • @rotatopotato5212
    @rotatopotato5212 8 หลายเดือนก่อน +2

    Your voice is so calming. Thank you for another great lesson!

  • @jacobwwarner
    @jacobwwarner 6 หลายเดือนก่อน

    Good short form video summary. Its more conceptual rather than technical, so i think the delivery method fulfilled the overall purpose.

    • @princezuko7073
      @princezuko7073 6 หลายเดือนก่อน

      I am a newbie on this. Can you explain why it's conceptual than technical?

    • @jacobwwarner
      @jacobwwarner 6 หลายเดือนก่อน

      @@princezuko7073 It didn't go into how you build a solution in code or using different libraries, frameworks, etc.

    • @princezuko7073
      @princezuko7073 6 หลายเดือนก่อน

      @@jacobwwarner got it. Any good resources you’d recommend to practice in coding, using frameworks or libraries?
      NB: I am learning Django.

  • @punpompur
    @punpompur 11 หลายเดือนก่อน +8

    Couldn't agree more. Session management with JWT was a problem for me in a project because for one of the clients they wanted only one active session for a user.

    • @OverG88
      @OverG88 11 หลายเดือนก่อน

      Authorization services such as Keycloak can control that. Most likely through a number of issued refresh tokens.

    • @Kriishna47
      @Kriishna47 8 หลายเดือนก่อน +2

      Is it not possible to look at the JWT payload and get the user details and maintain the session data to determine the concurrent sessions?

    • @jimdixxTubersSTV
      @jimdixxTubersSTV 6 หลายเดือนก่อน

      @@Kriishna47 OIDC and JWT Token bring benefits of stateless application approach. Maintaining a session between a client and a server omits this benefit and the application becomes stateful by the principle. In this case, you may bring another authentication mechanism -> cookies, to track the user's session, typically. Also, you have to store the sessions on the server side. Good luck with easy horizontal scaling, as this adds another complexity to the whole architecture as you must store the session information in some key-value database for all the instances. Stateful applications also require a slightly different approach of security, such as CSRF protection and many more to avoid session theft, which does not differ from JWT token compromise attacks, which may be protected by refresh token rotation, etc, etc. In my opinion, if you can avoid it, do not use stateful approach, but some applications must be stateful (I know). However... mixing stateful and stateless approaches together are an anti-pattern in my opinion, adding unnecessary complexity to the system architecture.

    • @noyou174
      @noyou174 3 หลายเดือนก่อน

      ​@@Kriishna47 using session is better then in that situation

  • @nyantaro1
    @nyantaro1 10 หลายเดือนก่อน +2

    Excellent video. What is the ideal way to authenticate and authorize these days?

  • @VietNamCombatZ
    @VietNamCombatZ 2 หลายเดือนก่อน

    What program do you use to make your presentation ? They look so cool, I want to use them in my school project so much!

  • @pif5023
    @pif5023 11 หลายเดือนก่อน +29

    I still fail to understand the security part of JWTs. If they are sent as unencrypted headers and can be easily stolen why should we rely on them for user authentication and by consequence for authorization?

    • @alastairzotos
      @alastairzotos 11 หลายเดือนก่อน +73

      They're not that easily stolen if you send them over HTTPS. The payload may not be encrypted, but an attacker can't modify the payload (i.e. replace your email or user ID with their own) because they would have to make a new signature for that payload, which requires them to have access to the signing key that only the server has

    • @Euquila
      @Euquila 11 หลายเดือนก่อน +10

      User supplies information to server to authenticate (like username/password or oauth token). Server mints new JWT and sends it back to client, who then stores it in browser storage/cookies. Client makes subsequent requests to server like POST /data to transmit data or GET /user to get their profile or even check if they are still authenticated using this JWT (since a status 401 on GET /user indicates your JWT is no longer good and client can re-route to sign-in page)

    • @ianokay
      @ianokay 11 หลายเดือนก่อน +16

      They're no more or less likely to be stolen than any alternative access token. The video itself is confusing

    • @vicaya
      @vicaya 11 หลายเดือนก่อน +23

      The video appears to be confused about different layers of security. JWT is just a serialization format to encode auth metadata. The actual security is guaranteed by the underlying protocols, like OIDC/OAuth2 etc, which mandate state and nonce fields, as well as https/TLS 1.2+ transport.

    • @vicaya
      @vicaya 11 หลายเดือนก่อน +8

      @@alastairzotos you also need additional mechanisms (state and nonce etc.) to avoid CSRF and replay attacks.

  • @jizhang2407
    @jizhang2407 11 หลายเดือนก่อน +2

    Amazing animation.

  • @ianokay
    @ianokay 11 หลายเดือนก่อน +11

    It doesn't make any sense to suggest hijacking is a failure of JWT ("vulnerable to theft") since it's just an access token (with verifiably authentic user information). Access tokens could be hijacked as well, so it's no better or worse than the alternatives as a Bearer token. ☝🤔

    • @patenlikoyun
      @patenlikoyun 11 หลายเดือนก่อน +2

      You can disable an access token if it's leaked

    • @patenlikoyun
      @patenlikoyun 11 หลายเดือนก่อน +2

      I just realized after sending the message that jwts can be disabled also

    • @ianokay
      @ianokay 11 หลายเดือนก่อน +1

      @@patenlikoyun Yes because they aren't different except for what I noted

    • @alps747
      @alps747 11 หลายเดือนก่อน

      @@patenlikoyunyou can't invalidate individual jwt tokens since they are not stored on the server. you can just delete the private key, so all tokens signed using that get invalidated which is a big impact as compared to invalidating individual sessions.

    • @M3t4lstorm
      @M3t4lstorm 11 หลายเดือนก่อน +1

      You can also put the client's IP (as seen by the server) in the JWT when creating it. Validate it just as you would the signature, issuer etc. Any attacker getting ahold of the JWT would have to perform the attack from the client's network, rather than sending it back to a Command and Control server/their network.

  • @saiki4116
    @saiki4116 11 หลายเดือนก่อน +1

    Really clear, concise explanantion.

  • @dashdoom8452
    @dashdoom8452 2 หลายเดือนก่อน

    Would like more details and nuance for a topic like this

  • @isophistchambers6694
    @isophistchambers6694 10 หลายเดือนก่อน +1

    Thank you for this explanation

  • @raj_kundalia
    @raj_kundalia 11 หลายเดือนก่อน +1

    Thank you!

  • @gus473
    @gus473 11 หลายเดือนก่อน +9

    Really good, understandable explanation (plus your superior graphics)! Thanks! 😎✌️

  • @yogashvari4294
    @yogashvari4294 7 หลายเดือนก่อน

    Good explanation
    👍👍👍

  • @apexcoder6975
    @apexcoder6975 5 หลายเดือนก่อน

    Nicely Explained

  • @Yorgarazgreece
    @Yorgarazgreece 11 หลายเดือนก่อน +6

    i always pronounced them jay double u tees. first time i am hearing joughts lol

  • @saattlebrutaz
    @saattlebrutaz 11 หลายเดือนก่อน +2

    This is an absolutely amazing channel.

  • @math0111
    @math0111 หลายเดือนก่อน

    how did you made this animation?? waw>>>

  • @iammobenal
    @iammobenal 4 หลายเดือนก่อน

    great presentation

  • @invisibleinvisible83
    @invisibleinvisible83 11 หลายเดือนก่อน +2

    Thank you so much for this video🙏🏻

  • @luis96xd
    @luis96xd 11 หลายเดือนก่อน +6

    Great video, everything was well explained, thanks!

  • @DatNickNganGonVaDeNho
    @DatNickNganGonVaDeNho 2 หลายเดือนก่อน

    standardlization is not good in jwt, jwt is lightweight but not light enough, especially it put in header request.
    we can still reduce header request :
    remove header jwt - service know how to verify itself
    using encode better than base64 or just encrypt it to store sensitive data, WHY NOT?

  • @CortezLabs
    @CortezLabs 3 วันที่ผ่านมา

    Love This

  • @rishiraj2548
    @rishiraj2548 11 หลายเดือนก่อน +1

    Thanks

  • @mad_t
    @mad_t 11 หลายเดือนก่อน +2

    I still prefer custom access tokens to jwt.

  • @rahulsalivendra
    @rahulsalivendra 6 หลายเดือนก่อน

    Hi, what are various ways we can encrypt and decrypt the payload using jwt?

  • @nonamespls3468
    @nonamespls3468 9 หลายเดือนก่อน +2

    the graphics look complex, and it disrupts the listener, too many unneeded visuals running around, this could have been explained in a more simple way

  • @unknowrabbit666
    @unknowrabbit666 11 หลายเดือนก่อน +1

    wow so much information /s

  • @stratboy2
    @stratboy2 9 หลายเดือนก่อน +1

    I thought it was a video about the james webb telescope..

  • @siddhantkumarkeshri6990
    @siddhantkumarkeshri6990 10 หลายเดือนก่อน +1

    informative

  • @danielmutuba9621
    @danielmutuba9621 11 หลายเดือนก่อน +2

    A comment at minute 2:30, asymmetric encyption is where encyption uses public key, but decryption uses private key, but you say otherwise in the video. A great video nonetheless

    • @Reza1984_
      @Reza1984_ 11 หลายเดือนก่อน +4

      I thought this first, but it's used for signing not encryption.

    • @arjundureja
      @arjundureja 10 หลายเดือนก่อน +3

      You sign with the private key so that anyone with the public key can verify the signature

  • @TobiasSette
    @TobiasSette 10 หลายเดือนก่อน +1

    I missed an example showing how to not use JWT in sessions

  • @ToanTrancodeblog
    @ToanTrancodeblog 11 หลายเดือนก่อน +1

    Nice video

  • @Applecitylightkiwi
    @Applecitylightkiwi 11 หลายเดือนก่อน +2

    V good

  • @the_space_astronaut7534
    @the_space_astronaut7534 8 หลายเดือนก่อน +1

    Ok

  • @stevenhe3462
    @stevenhe3462 7 หลายเดือนก่อน

    Was expecting James Webb Telescope.

  •  3 หลายเดือนก่อน

    bad start of the video: 0:56 the json example is doubly malformed: 1) it uses smart quotes; 2) the keys 'exp' and 'sub' have an extra closing double quote

  • @BecherTammy-e4e
    @BecherTammy-e4e หลายเดือนก่อน

    Cierra Plains

  • @DelbertRoberge-v7j
    @DelbertRoberge-v7j 2 หลายเดือนก่อน

    Kacey Plains

  • @MillEd-f5d
    @MillEd-f5d 2 หลายเดือนก่อน

    McLaughlin Ports

  • @DionDifilippo-u5c
    @DionDifilippo-u5c หลายเดือนก่อน

    Bailey Pass

  • @sirinath
    @sirinath 11 หลายเดือนก่อน +16

    What do you use for these animations?

    • @roauf-
      @roauf- 11 หลายเดือนก่อน +5

      Nobody knows, I asked and got no replies 😔

    • @TF242
      @TF242 11 หลายเดือนก่อน +1

      If I was to guess After Effects

    • @akankshagupta3687
      @akankshagupta3687 11 หลายเดือนก่อน +1

      I also have same question

    • @FarishKashefinejad
      @FarishKashefinejad 11 หลายเดือนก่อน +10

      It is in the description, illustrator and after effects.

    • @CasimiroBukayo
      @CasimiroBukayo 11 หลายเดือนก่อน +1

      Probably After Effects. But it can also be done using Manim

  • @rujor
    @rujor 6 หลายเดือนก่อน

    I don't think the closed envelope analogy is accurate. As far as I know, anyone can *read* the payload, no?

  • @ElizabethBeall-q4w
    @ElizabethBeall-q4w หลายเดือนก่อน

    Murphy Plains

  • @robpearce
    @robpearce 11 หลายเดือนก่อน +4

    0:58 - "Easy for humans to read and write".... you have a syntax error, lol.

    • @DemPilafian
      @DemPilafian 11 หลายเดือนก่อน

      I wouldn't have been able to read that file at all. If that error was easy for you to spot, you must be one of those humans.

  • @MargeryGodfery-x9p
    @MargeryGodfery-x9p หลายเดือนก่อน

    Karli Plains

  • @CharlesAnderson-p7l
    @CharlesAnderson-p7l หลายเดือนก่อน

    Witting Gardens

  • @SoyJavero
    @SoyJavero 4 หลายเดือนก่อน

    Does anybody know how to make does incredible diagrams with animations whatever? Please

  • @MariaHernandez-p8p
    @MariaHernandez-p8p 2 หลายเดือนก่อน

    Parker Heights

  • @HelenGonzalez-w4k
    @HelenGonzalez-w4k หลายเดือนก่อน

    Ryan Alley

  • @Smoonwalkerm
    @Smoonwalkerm 11 หลายเดือนก่อน +4

    I don't like to enconde user data in JWT...specially if you have to send roles and permissions

    • @biomorphic
      @biomorphic 11 หลายเดือนก่อน +9

      You should never send roles and permissions, that would be a huge security breach. You check roles and permissions based on the ID.

    • @Gringohuevon
      @Gringohuevon 11 หลายเดือนก่อน

      @@biomorphic Based on the claims?

    • @Smoonwalkerm
      @Smoonwalkerm 11 หลายเดือนก่อน

      @@biomorphic anyways... I always have doubts on this matter... Because consulting an endpoint that returns your roles and permissions in a normal http request seems very insecure to me

    • @M3t4lstorm
      @M3t4lstorm 11 หลายเดือนก่อน +5

      There isn't any security issues putting roles and permissions in a JWT.

    • @aakarshan4644
      @aakarshan4644 11 หลายเดือนก่อน

      @@biomorphic or maybe the authZ policies can be handled at the gateway. btw apart from the roles being public, I don't see any other issue especially if you want the request to be authZ stateless. Preferably I think the best way is to incorporate zanzibar adjacent open source tools to deal with user/service policy at an atomic level.

  • @MariaDean-d1l
    @MariaDean-d1l หลายเดือนก่อน

    Garrett Pass

  • @GoldViolet-z5r
    @GoldViolet-z5r หลายเดือนก่อน

    Abel Road

  • @EuphemiaZebulon-d7g
    @EuphemiaZebulon-d7g 2 หลายเดือนก่อน

    Jacobs Branch

  • @BaconSebastiane-s8x
    @BaconSebastiane-s8x หลายเดือนก่อน

    Abshire Street

  • @StanleyNelson-f8i
    @StanleyNelson-f8i 2 หลายเดือนก่อน

    Alexander Avenue

  • @ElizabethJacobs-w7x
    @ElizabethJacobs-w7x หลายเดือนก่อน

    Hudson Harbor

  • @siddhantkumarkeshri6990
    @siddhantkumarkeshri6990 10 หลายเดือนก่อน +1

    thanks for explanation

  • @GrahamDean-h8e
    @GrahamDean-h8e 2 หลายเดือนก่อน

    Paul Street

  • @WilmaLambdin-d2s
    @WilmaLambdin-d2s หลายเดือนก่อน

    Donnelly Spurs

  • @withanujmittal2800
    @withanujmittal2800 5 หลายเดือนก่อน

    best

  • @vladimir0rus
    @vladimir0rus 9 หลายเดือนก่อน +1

    Actually JSON is not simple to machines to parse and generate. Any binary format much easier for machines.

  • @SpringhallAmelia-n3h
    @SpringhallAmelia-n3h 2 หลายเดือนก่อน

    Runolfsdottir Terrace

  • @LandonAlbert-j4q
    @LandonAlbert-j4q 2 หลายเดือนก่อน

    Dibbert Locks

  • @ChurchKelly-e1h
    @ChurchKelly-e1h หลายเดือนก่อน

    Kreiger Mill

  • @Misteribel
    @Misteribel 9 หลายเดือนก่อน

    1:03, that's illegal json. You can only use straight quotes, not stylized quote characters (fun fact: just about every tech video makes this mistake, you'd expect tech nerds to know how to fix quotes, right). Rant aside, very clear explanation, thanks!

  • @MegMorgan-o3e
    @MegMorgan-o3e หลายเดือนก่อน

    Kutch Stravenue

  • @BabbittMonroe
    @BabbittMonroe 2 หลายเดือนก่อน

    2817 Mayert Island

  • @ThackerayAudrey-j5g
    @ThackerayAudrey-j5g 2 หลายเดือนก่อน

    Lee Jose Jackson Christopher Davis Larry

  • @GillAries-s8b
    @GillAries-s8b หลายเดือนก่อน

    O'Kon Radial

  • @shirleybargeman4484
    @shirleybargeman4484 หลายเดือนก่อน

    Harris Jose Thompson Shirley Brown Paul

  • @SoniyaKhan-g2y
    @SoniyaKhan-g2y 2 หลายเดือนก่อน

    Martin Scott Moore Nancy Lewis Edward

  • @ElmaNisa-t1n
    @ElmaNisa-t1n 2 หลายเดือนก่อน

    Gutkowski Inlet

  • @fumanchu332
    @fumanchu332 9 หลายเดือนก่อน

    JSON lightweight? That's rich... 🤣🤣🤣

  • @SamiraMahi-l2k
    @SamiraMahi-l2k หลายเดือนก่อน

    Smith Robert Hernandez Deborah Harris Donald

  • @KimberlyTaylor-b8d
    @KimberlyTaylor-b8d 2 หลายเดือนก่อน

    Legros Mountains

  • @biomorphic
    @biomorphic 11 หลายเดือนก่อน +4

    You do assume that the token is generated server side, which is not always the case. If your client is a mobile app, then it is much better if you generate the token on the client. The mobile app generates a new token for every new call, signing the token with the private key. The token would then be verified with the public key. The pair (private/public key) is generated during the sign up/sign in process. The public key is stored on the server, the private key in stored on the device keychain. No replay attack is possible in this configuration. Implemented for two different apps, first time 6 years ago. Most people creates a server side token, which is not as secure, because you can steal the token. And generally this token expires after days, otherwise you would have to issue a new token, and maybe ask to relogin every day, which is really annoying.

    • @doxologist
      @doxologist 11 หลายเดือนก่อน +5

      Although its possible to do it like this, I've never seen anyone generate JWTs on the client side. This entire flow sounds extremely inefficient and counter-productive. You may as well use cookies+session management if you were to implement it like this...

    • @marklnz
      @marklnz 11 หลายเดือนก่อน +11

      @@doxologistAgreed - general rule is to never trust the client, and that would extend to JWT. @Biomorphic, consider that if your private key is in the mobile app, then you basically just *gave it to an attacker to use themselves*. Generating client side is a crappy idea.

    • @biomorphic
      @biomorphic 11 หลายเดือนก่อน

      It is not inefficient. Generating a token is not really time consuming. And it is much more secure, and never requires to relogin or to use a session, which are indeed slow and dangerous.@@doxologist

    • @biomorphic
      @biomorphic 11 หลายเดือนก่อน

      You are wrong. How do you steal a secret that is stored in the keychain? You need to have access to the device, and you need to know the device password to access the keychain, and even if you have access, the value stored in the keychain can be encrypted. At that point you would need to debug the app itself to see which key is used to decrypt. Considering apps are sandboxed, you are not going to do that, not in a million years. And if you manage, that means you have full control of the device. You can't do shit if you don't have access to the device. But you can steal a token generated on the server any time. Also the token generated by the client can't be reused, because it changes for every call, so you cannot even perform a replay attack. And you don't need any fuckin session. To be able to act like that client you need to be able to generate a token with uid, did, exp, nbf, and sign it with the private key, which means you need to have access to it. You can steal the token as many times you want but you cannot ever use it. Meanwhile if you steal a token generated by the server, you can use it multiple times, and even alter it. And by the way, generating a token on the client is what Apple does. You all go for the easiest, or better, the most used solution, which is often the worst. Sessions should never be used. @@marklnz

    • @marklnz
      @marklnz 11 หลายเดือนก่อน +1

      @@biomorphic 1) not all apps are on Apple. 2) Not all clients are apps. 3) You are naive in the EXTREME if you think for one second that ANY secret on ANY client is completely safe. I'm not going to go into the specifics of anything but attacks on the keychain HAVE been successful in the past.
      If you build an app and say "I'm generating the token here so I need the private key" then you're making that a requirement for ALL clients of the service you're securing. So a website that uses the same API, for example. That website is going to then ALSO have to have a copy of the private key. Do you see where I'm going with this yet?
      You're also assuming that all users of the app are *legitimate* users. "You need to have access to the device, and you need to know the device password to access the keychain" - if I'm trying to access your API by generating a fake token then I'm just gonna go ahead and install your app on my device - then guess what? I *have* the device and I *know* the password. FFS man! Get it through your head - NEVER store secrets on a CLIENT!!!!
      Also, your assumption that I use sessions is wrong. I've NEVER done it that way. Always use JWT, just with *server signing* as you're SUPPOSED TO DO.

  • @MariaThompson-d7y
    @MariaThompson-d7y หลายเดือนก่อน

    Garcia Mary Brown Jose Moore David

  • @vivekpaliwal1876
    @vivekpaliwal1876 8 หลายเดือนก่อน

    Nobody is explaining how to manage session across login, logout and others requests. Across all apps.

  • @KellyMason-f6e
    @KellyMason-f6e หลายเดือนก่อน

    Klocko Center

  • @DelmaHalm-l4g
    @DelmaHalm-l4g หลายเดือนก่อน

    Lela Place

  • @EricScheid
    @EricScheid 9 หลายเดือนก่อน

    "jots" ??
    Surely, they should be pronounced as "juuts"

  • @AntoinetteSusie-r3m
    @AntoinetteSusie-r3m 2 หลายเดือนก่อน

    Rodriguez Barbara Wilson Matthew Young Betty

  • @leticiadavis-pq6lm
    @leticiadavis-pq6lm 2 หลายเดือนก่อน

    White Brian Taylor Richard Young Jose

  • @WallaceAubrey-b2m
    @WallaceAubrey-b2m หลายเดือนก่อน

    Young Kenneth Gonzalez Sarah Smith Angela

  • @DaisyHayes-n2k
    @DaisyHayes-n2k 2 หลายเดือนก่อน

    Moore Angela Jackson Helen Hall Eric

  • @PiersGabriel-f2v
    @PiersGabriel-f2v หลายเดือนก่อน

    Hand Rue

  • @DianaMarconi-h7d
    @DianaMarconi-h7d หลายเดือนก่อน

    Armstrong Course

  • @jay_wright_thats_right
    @jay_wright_thats_right 7 หลายเดือนก่อน

    This info is too basic. I think you draw in people because they get excited over animations. LOL! Well done. 🤣🤣🤣🤣