N
N
Nastya19202020-06-04 08:12:50
Java
Nastya1920, 2020-06-04 08:12:50

How to implement cross-server requests to authenticate/authorize (jwt) in microservice architecture?

Hey!
Need advice more experienced than me, specialists.
Essence tz: there is a microservice arch-ra. Authentication accepts base64 encoded email&password, returns a jwt-token, authorization - for all requests must accept jwt, check for validity, update (date and roles) and send back in the header. In addition to the token, after authorization, all user data from the database should be sent to the front to update the states (except hashpassword, of course).
The essence of the question: how to implement requests for such a jwt server from other microservices? The jwt itself lies with accounting (for accounting I use spring security and a filter to check and update the token, because all jwt utilities are in the same application, I take them through autowired). That is, if the user clicks on the "add comment" button, some kind of microservice a la a forum must first send the user's token for verification, get an updated one, execute the selected method itself - and return the updated token (in the header, probably) to the user along with what - a response from the database. It just seems strange to me to write two requests on the front for each function: somehow the server must route. Maybe a filter in each microservice, for example... any ideas?

Answer the question

In order to leave comments, you need to log in

1 answer(s)
S
Sergey Gornostaev, 2020-06-04
@sergey-gornostaev

Nope. The front receives a jwt token once upon login, and then sends it in the header to all other microservices until it becomes obsolete. No two requests are needed.

Similar questions
K
KhanTengri2011-06-17 23:56:41
Get from a remote web page?</a> <a class="content__item-button" href="/q/get-title-from-a-remote-web-page"> <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" class=""> <path fill-rule="evenodd" d="M15 14a1.002 1.002 0 01-1.703.71h-.004l-.003-.01-1.704-1.7H3c-1.104 0-2-.9-2-2V3c0-1.1.896-2 2-2h10c1.104 0 2 .9 2 2v11zM5 6c.552 0 1 .45 1 1s-.448 1-1 1-1-.45-1-1 .448-1 1-1zm3 0c.552 0 1 .45 1 1s-.448 1-1 1-1-.45-1-1 .448-1 1-1zm3 0c.552 0 1 .45 1 1s-.448 1-1 1-1-.45-1-1 .448-1 1-1z"></path> </svg> <span class="dark">6</span><span class="dn">Reply</span> </a> </div> </div><div class="content__item"> <div class="content__item-img name-color-T"> <span>T</span></div> <div class="content__item-content"> <div class="content__item-row"> <a href="/q/when-should-super-be-called-in-an-overridden-method">Tsuzukeru</a><span>2021-06-21 10:22:41</span></div> <a class="content__item-title similar" href="/q/when-should-super-be-called-in-an-overridden-method">When should super be called in an overridden method?</a> <a class="content__item-button" href="/q/when-should-super-be-called-in-an-overridden-method"> <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" class=""> <path fill-rule="evenodd" d="M15 14a1.002 1.002 0 01-1.703.71h-.004l-.003-.01-1.704-1.7H3c-1.104 0-2-.9-2-2V3c0-1.1.896-2 2-2h10c1.104 0 2 .9 2 2v11zM5 6c.552 0 1 .45 1 1s-.448 1-1 1-1-.45-1-1 .448-1 1-1zm3 0c.552 0 1 .45 1 1s-.448 1-1 1-1-.45-1-1 .448-1 1-1zm3 0c.552 0 1 .45 1 1s-.448 1-1 1-1-.45-1-1 .448-1 1-1z"></path> </svg> <span class="dark">1</span><span class="dn">Reply</span> </a> </div> </div><div class="content__item"> <div class="content__item-img name-color-W"> <span>W</span></div> <div class="content__item-content"> <div class="content__item-row"> <a href="/q/how-to-implement-an-application-in-android-studio">Wilson</a><span>2020-04-24 15:32:52</span></div> <a class="content__item-title similar" href="/q/how-to-implement-an-application-in-android-studio">How to implement an application in Android Studio?</a> <a class="content__item-button" href="/q/how-to-implement-an-application-in-android-studio"> <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" class=""> <path fill-rule="evenodd" d="M15 14a1.002 1.002 0 01-1.703.71h-.004l-.003-.01-1.704-1.7H3c-1.104 0-2-.9-2-2V3c0-1.1.896-2 2-2h10c1.104 0 2 .9 2 2v11zM5 6c.552 0 1 .45 1 1s-.448 1-1 1-1-.45-1-1 .448-1 1-1zm3 0c.552 0 1 .45 1 1s-.448 1-1 1-1-.45-1-1 .448-1 1-1zm3 0c.552 0 1 .45 1 1s-.448 1-1 1-1-.45-1-1 .448-1 1-1z"></path> </svg> <span class="dark">1</span><span class="dn">Reply</span> </a> </div> </div><div class="content__item"> <div class="content__item-img name-color-A"> <span>A</span></div> <div class="content__item-content"> <div class="content__item-row"> <a href="/q/how-to-set-up-cardview-and-recyclerview">arlanchik5</a><span>2018-02-19 08:24:35</span></div> <a class="content__item-title similar" href="/q/how-to-set-up-cardview-and-recyclerview">How to set up cardview and recyclerview?</a> <a class="content__item-button" href="/q/how-to-set-up-cardview-and-recyclerview"> <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" class=""> <path fill-rule="evenodd" d="M15 14a1.002 1.002 0 01-1.703.71h-.004l-.003-.01-1.704-1.7H3c-1.104 0-2-.9-2-2V3c0-1.1.896-2 2-2h10c1.104 0 2 .9 2 2v11zM5 6c.552 0 1 .45 1 1s-.448 1-1 1-1-.45-1-1 .448-1 1-1zm3 0c.552 0 1 .45 1 1s-.448 1-1 1-1-.45-1-1 .448-1 1-1zm3 0c.552 0 1 .45 1 1s-.448 1-1 1-1-.45-1-1 .448-1 1-1z"></path> </svg> <span class="dark">1</span><span class="dn">Reply</span> </a> </div> </div> </div> </div> </div> <div class="content find"> <p class="find__p">Didn't find what you were looking for?</p><a class="find__btn" href="#!">Ask your question</a> </div> <div class="find sm"> <p class="find__title">Ask a Question </p> <form class="find__form" action="#!"> <input class="find__input" type="text" placeholder="Ask your question here"> <button class="find__btn" type="submit"> <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 16 16" class="nBqR1"><path fill-rule="evenodd" d="M12.696 7.256L9.657 4.217a1 1 0 00-1.415 1.414l1.344 1.344H3.949a1.001 1.001 0 000 2h5.637l-1.344 1.343a1.002 1.002 0 000 1.415c.391.39 1.024.39 1.415 0l3.039-3.04A.993.993 0 0013 7.975a.997.997 0 00-.293-.708l-.011-.011z"></path></svg></button> </form> <p class="find__span">731 491 924 answers to any question</p> </div> </div> <aside class="banners"> <p>banners </p> </aside> </div> </main> </div> <script src="/assets/theme/js/highlight/highlight.min.js"></script> <script src="/assets/theme/js/app.min.js?_v=20220404145216"> </script> <script>hljs.highlightAll();</script> </body> </html>