Ich bin mir nicht sicher, ob das möglich ist. Sag, ich habe so etwas ...

/account/register#id_token=eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsImtpZCI6Ik56RXhNemRETUVRME9EWkdOMFJHUmtRMk9VUXdNemxFUWpWQk1UaEdNVFpCTURneU0wWXhSZyJ9.eyJuaWNrbmFtZSI6ImhlbGxvIiwibmFtZSI6ImhlbGxvQGhlbGxvLmNvbSIsInBpY3R1cmUiOiJodHRwczovL3MuZ3JhdmF0YXIuY29tL2F2YXRhci9kMzZlZWYzMjYyNTM2N2E0M2RhNjNhOTkwOWJhNzE2ZT9zPTQ4MCZyPXBnJmQ9aHR0cHMlM0ElMkYlMkZjZG4uYXV0aDAuY29tJTJGYXZhdGFycyUyRmhlLnBuZyIsInVwZGF0ZWRfYXQiOiIaGlyc3R5c3R1ZGlvcy5hdS5hdXRoMC5jb20vIiwic3ViIjoiYXV0aDB8NWFkNmE4NjI5MDI1MDU0NzJjNTYzMzBiIiwiYXVkIjoia3A1Zk1kaXNCdjRFcnc1dFJoN29LWlZSOTAxQ3BRZGUiLCJpYXQiOjE1MjQwMTcyNTUsImV4cCI6MTUyNDA1MzI1NSwibm9uY2UiOiIxSngxNmRHcjdOUjhla2xIZkNheWwyTDlYZWVSMkJNcCJ9.UBileHlEfQbuQgOPk60EkpTHAxxC_o0-4C4No6sCLbqTwEHljLKcKhA1CQhcMdtcn2a1c1YnV1Ka5AdYxh65iKGOEqMcauhIFKXkeO2E_X_mpv9x26HJzEJVzsg3PKzGKE8iAthzp_wXZf8Xqgnt7XAeKh6rTvpigZ2yjMdykCHu-rZgokaPO1CuYsFSibPf_ewS3zMHVbPGd1M2k-wvWiIV9anudkNLG4H0luEyBkrzNtKaa5x0z-YdNKhlApetcMC2QRbuHFbBGrCaQNTUJ5lnu-pMeT6llnRpLT9oE08elVcuEppXCXFRl-JFkbcWp-ft5BSOeTNkavEwb_jpJg&state=tBo7J0ySFXKMuVkKrdj3FURzoG5Y7Hu6

Gibt es eine Möglichkeit, die Zeichenfolge am = nach #id_token zu teilen und nur das Token in einer Variablen zu speichern und dann den Rest einfach zu verwerfen?

Ich weiß, ich könnte mich am = teilen und die beiden Hälften in ein Array legen und dann token = array[1] Ich frage mich nur, ob es einen besseren Weg gibt

1
Smokey Dawson 18 Apr. 2018 im 05:09

3 Antworten

Beste Antwort

Ich bin mir nicht sicher, ob es einen besseren Weg gibt, da dies subjektiv ist. Wenn Sie spezifischer sein möchten als =, können Sie ein expliziteres Regex-Muster verwenden:

let string = '#id_token=eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsImtpZCI6Ik56RXhNemRETUVRME9EWkdOMFJHUmtRMk9VUXdNemxFUWpWQk1UaEdNVFpCTURneU0wWXhSZyJ9.eyJuaWNrbmFtZSI6ImhlbGxvIiwibmFtZSI6ImhlbGxvQGhlbGxvLmNvbSIsInBpY3R1cmUiOiJodHRwczovL3MuZ3JhdmF0YXIuY29tL2F2YXRhci9kMzZlZWYzMjYyNTM2N2E0M2RhNjNhOTkwOWJhNzE2ZT9zPTQ4MCZyPXBnJmQ9aHR0cHMlM0ElMkYlMkZjZG4uYXV0aDAuY29tJTJGYXZhdGFycyUyRmhlLnBuZyIsInVwZGF0ZWRfYXQiOiIaGlyc3R5c3R1ZGlvcy5hdS5hdXRoMC5jb20vIiwic3ViIjoiYXV0aDB8NWFkNmE4NjI5MDI1MDU0NzJjNTYzMzBiIiwiYXVkIjoia3A1Zk1kaXNCdjRFcnc1dFJoN29LWlZSOTAxQ3BRZGUiLCJpYXQiOjE1MjQwMTcyNTUsImV4cCI6MTUyNDA1MzI1NSwibm9uY2UiOiIxSngxNmRHcjdOUjhla2xIZkNheWwyTDlYZWVSMkJNcCJ9.UBileHlEfQbuQgOPk60EkpTHAxxC_o0-4C4No6sCLbqTwEHljLKcKhA1CQhcMdtcn2a1c1YnV1Ka5AdYxh65iKGOEqMcauhIFKXkeO2E_X_mpv9x26HJzEJVzsg3PKzGKE8iAthzp_wXZf8Xqgnt7XAeKh6rTvpigZ2yjMdykCHu-rZgokaPO1CuYsFSibPf_ewS3zMHVbPGd1M2k-wvWiIV9anudkNLG4H0luEyBkrzNtKaa5x0z-YdNKhlApetcMC2QRbuHFbBGrCaQNTUJ5lnu-pMeT6llnRpLT9oE08elVcuEppXCXFRl-JFkbcWp-ft5BSOeTNkavEwb_jpJg&state=tBo7J0ySFXKMuVkKrdj3FURzoG5Y7Hu6'

let token = string.match(/#id_token=(.*)/).pop() 
   
console.log(token)
1
vol7ron 18 Apr. 2018 im 02:17

Verwenden der String-Methode substring ()

const string = '#id_token=eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsImtpZCI6Ik56RXhNemRETUVRME9EWkdOMFJHUmtRMk9VUXdNemxFUWpWQk1UaEdNVFpCTURneU0wWXhSZyJ9.eyJuaWNrbmFtZSI6ImhlbGxvIiwibmFtZSI6ImhlbGxvQGhlbGxvLmNvbSIsInBpY3R1cmUiOiJodHRwczovL3MuZ3JhdmF0YXIuY29tL2F2YXRhci9kMzZlZWYzMjYyNTM2N2E0M2RhNjNhOTkwOWJhNzE2ZT9zPTQ4MCZyPXBnJmQ9aHR0cHMlM0ElMkYlMkZjZG4uYXV0aDAuY29tJTJGYXZhdGFycyUyRmhlLnBuZyIsInVwZGF0ZWRfYXQiOiIaGlyc3R5c3R1ZGlvcy5hdS5hdXRoMC5jb20vIiwic3ViIjoiYXV0aDB8NWFkNmE4NjI5MDI1MDU0NzJjNTYzMzBiIiwiYXVkIjoia3A1Zk1kaXNCdjRFcnc1dFJoN29LWlZSOTAxQ3BRZGUiLCJpYXQiOjE1MjQwMTcyNTUsImV4cCI6MTUyNDA1MzI1NSwibm9uY2UiOiIxSngxNmRHcjdOUjhla2xIZkNheWwyTDlYZWVSMkJNcCJ9.UBileHlEfQbuQgOPk60EkpTHAxxC_o0-4C4No6sCLbqTwEHljLKcKhA1CQhcMdtcn2a1c1YnV1Ka5AdYxh65iKGOEqMcauhIFKXkeO2E_X_mpv9x26HJzEJVzsg3PKzGKE8iAthzp_wXZf8Xqgnt7XAeKh6rTvpigZ2yjMdykCHu-rZgokaPO1CuYsFSibPf_ewS3zMHVbPGd1M2k-wvWiIV9anudkNLG4H0luEyBkrzNtKaa5x0z-YdNKhlApetcMC2QRbuHFbBGrCaQNTUJ5lnu-pMeT6llnRpLT9oE08elVcuEppXCXFRl-JFkbcWp-ft5BSOeTNkavEwb_jpJg&state=tBo7J0ySFXKMuVkKrdj3FURzoG5Y7Hu6';
const token = x.substring('#id_token='.length);

Dokumentation für Teilzeichenfolge (): https://developer.mozilla.org/ de-US / docs / Web / JavaScript / Reference / Global_Objects / String / substring

0
William Antony 18 Apr. 2018 im 02:21

Verwenden Sie das integrierte URLSearchParams, anstatt sich mit dem Parsen von Zeichenfolgen herumzuschlagen:

const input = '/account/register#id_token=eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsImtpZCI6Ik56RXhNemRETUVRME9EWkdOMFJHUmtRMk9VUXdNemxFUWpWQk1UaEdNVFpCTURneU0wWXhSZyJ9.eyJuaWNrbmFtZSI6ImhlbGxvIiwibmFtZSI6ImhlbGxvQGhlbGxvLmNvbSIsInBpY3R1cmUiOiJodHRwczovL3MuZ3JhdmF0YXIuY29tL2F2YXRhci9kMzZlZWYzMjYyNTM2N2E0M2RhNjNhOTkwOWJhNzE2ZT9zPTQ4MCZyPXBnJmQ9aHR0cHMlM0ElMkYlMkZjZG4uYXV0aDAuY29tJTJGYXZhdGFycyUyRmhlLnBuZyIsInVwZGF0ZWRfYXQiOiIaGlyc3R5c3R1ZGlvcy5hdS5hdXRoMC5jb20vIiwic3ViIjoiYXV0aDB8NWFkNmE4NjI5MDI1MDU0NzJjNTYzMzBiIiwiYXVkIjoia3A1Zk1kaXNCdjRFcnc1dFJoN29LWlZSOTAxQ3BRZGUiLCJpYXQiOjE1MjQwMTcyNTUsImV4cCI6MTUyNDA1MzI1NSwibm9uY2UiOiIxSngxNmRHcjdOUjhla2xIZkNheWwyTDlYZWVSMkJNcCJ9.UBileHlEfQbuQgOPk60EkpTHAxxC_o0-4C4No6sCLbqTwEHljLKcKhA1CQhcMdtcn2a1c1YnV1Ka5AdYxh65iKGOEqMcauhIFKXkeO2E_X_mpv9x26HJzEJVzsg3PKzGKE8iAthzp_wXZf8Xqgnt7XAeKh6rTvpigZ2yjMdykCHu-rZgokaPO1CuYsFSibPf_ewS3zMHVbPGd1M2k-wvWiIV9anudkNLG4H0luEyBkrzNtKaa5x0z-YdNKhlApetcMC2QRbuHFbBGrCaQNTUJ5lnu-pMeT6llnRpLT9oE08elVcuEppXCXFRl-JFkbcWp-ft5BSOeTNkavEwb_jpJg&state=tBo7J0ySFXKMuVkKrdj3FURzoG5Y7Hu6';
const params = new URLSearchParams(input);
console.log(params.get('/account/register#id_token'));

Wenn Sie IE unterstützen müssen, verwenden Sie auch die Polyfill.

4
CertainPerformance 18 Apr. 2018 im 02:23