• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

pennersr / django-allauth / 8813675415

24 Apr 2024 08:42AM UTC coverage: 95.67% (+0.01%) from 95.656%
8813675415

Pull #3748

github

web-flow
Merge c7cba283a into 85fd652ca
Pull Request #3748: Feat(social accounts): Add Tiktok provider

76 of 77 new or added lines in 7 files covered. (98.7%)

16901 of 17666 relevant lines covered (95.67%)

0.96 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

96.55
/allauth/socialaccount/providers/tiktok/provider.py
1
from allauth.socialaccount.providers.base import ProviderAccount
1✔
2
from allauth.socialaccount.providers.oauth2.provider import OAuth2Provider
1✔
3
from allauth.socialaccount.providers.tiktok.scope import TikTokScope
1✔
4
from allauth.socialaccount.providers.tiktok.views import TikTokOAuth2Adapter
1✔
5

6

7
class TikTokAccount(ProviderAccount):
1✔
8

9
    def get_username(self):
1✔
10
        return self.account.extra_data.get("username")
1✔
11

12
    def get_display_name(self):
1✔
NEW
13
        return self.account.extra_data.get("display_name")
×
14

15
    def get_profile_url(self):
1✔
16
        return self.account.extra_data.get("profile_deep_link")
1✔
17

18
    def get_avatar_url(self):
1✔
19
        return self.account.extra_data.get("avatar_url")
1✔
20

21
    def to_str(self):
1✔
22
        username = self.get_username()
1✔
23
        return username or super().to_str()
1✔
24

25

26
class TikTokProvider(OAuth2Provider):
1✔
27
    id = "tiktok"
1✔
28
    name = "TikTok"
1✔
29
    account_class = TikTokAccount
1✔
30
    oauth2_adapter_class = TikTokOAuth2Adapter
1✔
31
    pkce_enabled_default = False
1✔
32

33
    def extract_uid(self, data):
1✔
34
        return str(data["open_id"])
1✔
35

36
    def extract_common_fields(self, data):
1✔
37
        # TikTok does not provide an email address
38
        return {
1✔
39
            "username": data.get("username") or data.get("display_name"),
40
            "name": data.get("display_name"),
41
        }
42

43
    def get_default_scope(self):
1✔
44
        # Requires LoginKit and Scopes with user.info.basic and user.info.profile enabled
45
        return [TikTokScope.user_info_basic, TikTokScope.user_info_profile]
1✔
46

47

48
provider_classes = [TikTokProvider]
1✔
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2025 Coveralls, Inc