Skip to content

Commit ac7d118

Browse files
authored
Merge pull request #397 from weakish/loginWithEmail
✨ login with email
2 parents 787a0da + 9983d95 commit ac7d118

2 files changed

Lines changed: 18 additions & 2 deletions

File tree

leancloud/user.py

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -130,14 +130,23 @@ def sign_up(self, username=None, password=None):
130130

131131
self.save(make_current=True)
132132

133-
def login(self, username=None, password=None):
133+
def login(self, username=None, password=None, email=None):
134134
"""
135-
登陆用户。如果用户名和密码正确,服务器会返回用户的 sessionToken 。
135+
登录用户。成功登录后,服务器会返回用户的 sessionToken 。
136+
137+
:param username: 用户名
138+
:param email: 邮箱地址(username 和 email 这两个参数必须传入一个且仅能传入一个)
139+
:param password: 用户密码
136140
"""
137141
if username:
138142
self.set('username', username)
139143
if password:
140144
self.set('password', password)
145+
if email:
146+
self.set('email', email)
147+
# 同时传入 username、email、password 的情况下,这三个字段会一起发给后端。
148+
# 这时后端会忽略 email,等价于只传 username 和 password。
149+
# 这里的 login 函数的实现依赖后端的这一行为,没有校验 username 和 email 中调用者传入且仅传入了其中一个参数。
141150
response = client.post('/login', params=self.dump())
142151
content = response.json()
143152
self._update_data(content)

tests/test_user.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,13 @@ def test_login(): # type: () -> None
9494
user.login('user1_name', 'password')
9595

9696

97+
@with_setup(get_setup_func(), destroy_func)
98+
def test_login_with_email(): # type: () -> None
99+
100+
user = User()
101+
user.login(email='wow@leancloud.rocks', password='password')
102+
103+
97104
@with_setup(get_setup_func(), destroy_func)
98105
def test_file_field(): # type: () -> None
99106
user = User()

0 commit comments

Comments
 (0)