Welcome to www.HAS.lv - programmējam HTML.

Register now to gain access to all of our features. Once registered and logged in, you will be able to contribute to this site by submitting your own content or replying to existing content. You'll be able to customize your profile, receive reputation points as a reward for submitting content, while also communicating with other members via your own private inbox, plus much more! This message will be removed once you have signed in.

Sign in to follow this  
Followers 0
KAUNET

[Need help] Client adreses iegūšana

Vakar lēnā garā uzsāku darboties ar jaunāko angular un šodien jau saskāros ar nelielu problēmu saistībā ar client/lietotāja ip adreses iegūšanu backend daļā, tiek saņemt servera ip adrese, nevis client addrese.
Backends man stāv uz Spring boot/java un parasti client ip adresi iegūstu caur HttpServletRequest -> getRemoteAddr() method, kas strādā 1. angularjs gadījumā bezproblēmām. Backends ir pievienots caur proxy failu, jo stāv uz citu portu un vajag noverst CORS problēmu, sīkāk šeit. Gan frontends, gan backends stāv zem ssl un būtībā viss strādā, ir iespējams iegūt datus no backend utt.

Pagaidām http request sūtīšanas kods izskatās šādi:
 

var headers = new Headers();
headers.append('Content-Type', 'application/json');
headers.append('contentType','application/json; charset=utf-8');
headers.append('Accept','application/json');
headers.append('X-Requested-With','XMLHttpRequest');
headers.append("Access-Control-Allow-Credentials", "true");

return this.http.get( this.API + '/createSession', { headers: headers, withCredentials: true })
.toPromise()
.then(res => {
	console.log('createSession()');
	console.log(res);
	return true;
});


Čakarējos jau labu laiku ar to problēmu, esmu viss kaut ko jau izmēģinājis.
Pagaidām izskatās, ka problēma ir saistīta ar to proxy.

Varbūt kāds zina, kā šo problēmu atrisināt?
 

0

Share this post


Link to post
Share on other sites

Klients nav tas, kas serveris? Jebšu, ja hostē lokāli un vienkārši sauc API no tā paša IP, tad tie būs vienādi.

0

Share this post


Link to post
Share on other sites

Gan jau, ka proxy nepadod pareizos headerus, tur ar angular īsti nebūs sakars.

0

Share this post


Link to post
Share on other sites
7 hours ago, LoyC said:

Gan jau, ka proxy nepadod pareizos headerus, tur ar angular īsti nebūs sakars.

Diemžēl neesmu uzrakstījis pārāk detalizēti, jo nodomāju, ja kāds, kurš skatās šo topicu, ir ko tādu darījis, tad sapratīs, ko gribu panākt.
Apnika čakarēties, atslēdzu proxy figņu un nedaudz pārkonfigurēju backend serveri, lai acceptotu requestos no frontend.
Pats īsti neizprotu kā tas proxy strādā, bet nu situācija ir sekojoša - frontend stāv uz vienu portu(example:8000), backend uz citu portu(example:8001) un visi requesti tiek sūtīti zem /api, ar angular proxy palīdzību var izveidot tā, ka visi visus api requestus var sūtīt uz example:8000/api kaut vai backend atrodas uz 8001 portu. Angulars kaut kā pārraksta to request, ka nevajag konfigurēt nekādus cors backendā, vienīgi uzreiz rodas problēma, ka requests tiek sūtīts konkrēti no frontend serveri, tāpēc arī man backendā client ip uzrāda kā paša servera ip(kā nekā tiek sūtīts caur proxy). Biju cerējis, ka te ir kāds gar to čakarējies un zina, kā nodot līdzi pareizo client ip.

It kā tgd strādā, vienīgi bez proxy, vel nedaudz paturēšu tēmu vaļā, varbūt uzrodas kāds, kurš zina  kā to izdarīt, ja maz tā var izdarīt.

 

@Gustavs gan frontend, gan backend stāv uz publiskas adreses un ne uz mana pc, ne arī uz mana networka, tāpēc sanāk, ka es vienojos klāt no pavisam citas ip un manu ip noteikti nevajadzētu uzrādīt kā servera ip.

 

@Pujka tu maz zini, kas ir spring-boot un angular?:D

0

Share this post


Link to post
Share on other sites

Kādēļ neliec visu vienu viet, ja nevēlies čakarēties ar CORS?

0

Share this post


Link to post
Share on other sites
2 hours ago, GuskiS said:

Kādēļ neliec visu vienu viet, ja nevēlies čakarēties ar CORS?

Nezinu, cik tas ir labi vai slikti, bet tgd esmu nolēmis api turēt pilnībā atsevišķi no frontend, kā pilnībā atsevišķu serveri, jo uz api balstās ne tikai webs. Bet vispār man esošais webs stāv zem, tā teikt, api servera, kur frontends ir balstīts uz angularjs(1.x).

0

Share this post


Link to post
Share on other sites

Tad es neizprotu vajadzību pēc frontend servera. Uzmet assetus uz CDN un servo tos no tupa `index.html` pie sava API servera.

0

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now
Sign in to follow this  
Followers 0