- ABP Framework version: v7.2.2
- UI Type: Blazor Server
- Database System: EF Core (SQL Server, Oracle, MySQL, PostgreSQL, etc..)
- Tiered (for MVC) or Auth Server Separated (for Angular): yes
https://support.abp.io/QA/Questions/5792/Token-Create Hello,
In the previous link, I asked how to make requests from Project A's frontend to Project B's API through a shared authentication server. Now, I'd like to know how to make requests from the backend of Project A to the backend of Project B.
9 Answer(s)
-
0
Hi
Please read this by doing this you can communicate between project using client_credentials
https://docs.abp.io/en/commercial/latest/startup-templates/microservice/synchronous-interservice-communication
https://auth0.com/docs/get-started/authentication-and-authorization-flow/client-credentials-flow
-
0
Hi, Both projects are monolithic projects, how can I make them work with a single token?
-
0
Hi
using client_credentials please check how to create client_credentials client in the project that want it to be accessed and make a http call https://support.abp.io/QA/Questions/5943/Modify-tenant-onboard-flow-by-customizing-tenant-management-module-UI-and-API#answer-3a0e2ff0-2171-cf2a-60f2-c4164551b1cf
use of client credentials and assigning them permission
you can you http client to make call to another app service.
This is nothing to do with monolith or any other project type these are just communication form server to server using client_credentials grant type
-
0
Hi, I can perform the actions highlighted in green. What I want to do is what's marked in red. I cannot perform the action marked in red. With this code: 'await HttpClientAuthenticator.Authenticate(new RemoteServiceHttpClientAuthenticateContext(client, requestMessage, new RemoteServiceConfiguration(baseUrl), string.Empty));' I can make a request from Project B's frontend to the API in Project A. However, I cannot use this code in Project B's API, so I cannot obtain the token. Therefore, when I go from Project B's API to Project A's API, it returns a 401 error. How can I obtain the token of a user who has logged in to Project B's API? If I obtain the token, I can make requests to Project A's API using that token.
-
0
Hi
Create a Client in Project A of client credentials by providing the sufficient permission of project a api permissions then from project b get the token
you can see how to get token https://support.abp.io/QA/Questions/5943/Modify-tenant-onboard-flow-by-customizing-tenant-management-module-UI-and-API#answer-3a0e2ff0-2171-cf2a-60f2-c4164551b1cf
make sure to use project a auth server url to get the token and then use that token to call the project a api.
-
0
hi, I don't understand how to obtain the token of a user who has logged in the 'ProjectB.Application' project.
-
0
Hi
it is not a user's token as it is a server to server communication it can't be a user token https://oauth.net/2/grant-types/client-credentials/ please read more about client credentials flow
-
0
How can I find current user token?
-
0
Hi
When you send a request to backend through the angular, angular app sends the access token in the Request so the access token should be in the httpcontext request
please read more here https://learn.microsoft.com/en-us/dotnet/api/microsoft.aspnetcore.authentication.authenticationtokenextensions.gettokenasync?view=aspnetcore-7.0
HttpContext.Request.GetTokenAsync("access_token")
or
HttpContext.GetTokenAsync("access_token")
you can do these in the controller