Swiftfin icon indicating copy to clipboard operation
Swiftfin copied to clipboard

Native multi-user support on tvOS 16

Open awein opened this issue 2 years ago • 5 comments

The new entitlement introduced with iOS 16 allows full multi-user support: runs-as-current-user-with-user-independent-keychain

awein avatar Jan 01 '23 12:01 awein

I will play around with this for a while and see if this is the way that we should just finally handle it, see #258.

LePips avatar Jan 02 '23 02:01 LePips

I said it in the linked issue, but I think we don't want the user-independent-keychain because that means that the set of Jellyfin users is shared between all Apple TV users. Since each Jellyfin user has a unique login (unlike most streaming services), we probably don't want the keychain (and therefore logins) shared. I believe the proper entitlement to use is runs-as-current-user such that each Apple TV user has a unique keychain and needs to login individually to Jellyfin with their individual Jellyfin login.

holow29 avatar Jan 25 '23 02:01 holow29

Valid point and I tend to agree that runs-as-current-user is enough and will allow support for this to be available on tvOS 14 and above (in contrast to tvOS 16 and above with the suggested change). That being said: Both variants will behave the same on tvOS 16 given the user specific keychain is used by default. The shared user-independent keychain is only used when specifically specified. E.g. it could be used to store the server URL to streamline the login flow for additional users but wouldn't be used to store the actual user credentials of course.

awein avatar Jan 25 '23 11:01 awein

Great points! I was forgetting that each item that used the shared keychain needed to have a declaration as such. However, currently Swiftfin supports tvOS 15. The tradeoff seems to be: do we care about support for this specific feature in tvOS 15 (given all users can update to tvOS 16) or is it fine to keep in tvOS 16+ exclusive which would have the advantage of perhaps being the more supported way of doing it now? (It makes me think runs-as-current-user will be deprecated first.) I'd lean towards using runs-as-current-user-with-user-independent-keychain since it is basically a superset of the funcionality.

holow29 avatar Jan 25 '23 16:01 holow29

Maybe runs-as-current-user for now, and runs-as-current-user-with-user-independent-keychain when there's the slightest hint that the former will be deprecated (and minimal support has shifted up to tvOS 16)?

ShadowJonathan avatar Nov 13 '23 09:11 ShadowJonathan