Skip to content

Commit

Permalink
feat(auth): send real information on login (#470)
Browse files Browse the repository at this point in the history
* feat(auth): send real ip on login

* feat(auth): send application name on login
  • Loading branch information
TOomaAh authored May 24, 2024
1 parent fed66f0 commit d765055
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 4 deletions.
15 changes: 12 additions & 3 deletions server/api/jellyfin.ts
Original file line number Diff line number Diff line change
Expand Up @@ -104,9 +104,9 @@ class JellyfinAPI {

let authHeaderVal = '';
if (this.authToken) {
authHeaderVal = `MediaBrowser Client="Overseerr", Device="Axios", DeviceId="${deviceId}", Version="10.8.0", Token="${authToken}"`;
authHeaderVal = `MediaBrowser Client="Jellyseerr", Device="Jellyseerr", DeviceId="${deviceId}", Version="10.8.0", Token="${authToken}"`;
} else {
authHeaderVal = `MediaBrowser Client="Overseerr", Device="Axios", DeviceId="${deviceId}", Version="10.8.0"`;
authHeaderVal = `MediaBrowser Client="Jellyseerr", Device="Jellyseerr", DeviceId="${deviceId}", Version="10.8.0"`;
}

this.axios = axios.create({
Expand All @@ -121,14 +121,23 @@ class JellyfinAPI {

public async login(
Username?: string,
Password?: string
Password?: string,
ClientIP?: string
): Promise<JellyfinLoginResponse> {
try {
const headers = ClientIP
? {
'X-Forwarded-For': ClientIP,
}
: {};
const account = await this.axios.post<JellyfinLoginResponse>(
'/Users/AuthenticateByName',
{
Username: Username,
Pw: Password,
},
{
headers: headers,
}
);

Expand Down
8 changes: 7 additions & 1 deletion server/routes/auth.ts
Original file line number Diff line number Diff line change
Expand Up @@ -271,7 +271,13 @@ authRoutes.post('/jellyfin', async (req, res, next) => {
? jellyfinHost.slice(0, -1)
: jellyfinHost;

const account = await jellyfinserver.login(body.username, body.password);
const ip = req.ip ? req.ip.split(':').reverse()[0] : undefined;
const account = await jellyfinserver.login(
body.username,
body.password,
ip
);

// Next let's see if the user already exists
user = await userRepository.findOne({
where: { jellyfinUserId: account.User.Id },
Expand Down

0 comments on commit d765055

Please sign in to comment.