三方登录逻辑
理解第三方登录的流程:
用户向本地应用商城发起请求,我要用微博进行登录
我们的商城凑一个url让用户跳转到第三方应用的url(微博的登录页面)
用户在该界面点击输入用户名密码之后,点击授权。
微博有个回调url指向我们的应用。
我们的应用就可以获取到用户的基本信息等。
微博接口文档 : https://open.weibo.com/wiki/%E9%A6%96%E9%A1%B5
使用逻辑:
1、首先要去微博开发者页面,完成验证,才可以新建应用
2、建好应用之后就可以拿到应用的App Key, App Secret,需要设置好回调地址
3、要是系统还没开发完成,可以使用测试模式,需要自己手动添加可以登录的微博账号
""" client_id 必填 string 申请应用时分配的AppKey。 redirect_uri 必填 string 授权回调地址,站外应用需与设置的回调地址一致。 """ #获取微博登录页面url def get_auth_url(): weibo_auth_url = "https://api.weibo.com/oauth2/authorize" redirect_url = "http://127.0.0.1:8001/complete/weibo/" client_id = "AppKey" auth_url = weibo_auth_url + "?client_id={client_id}&redirect_uri={re_url}".format(client_id=client_id, re_url=redirect_url) print(auth_url) #获取登录的token,这里是拿到登录的code #code会拼接在回调地址后面返回http://127.0.0.1:8001/complete/weibo/?code=c53bd7b5af51ec985952a3c03de3b def get_access_token(code): access_token_url = "https://api.weibo.com/oauth2/access_token" import requests re_dict = requests.post(access_token_url,data={ "client_id": AppKey, "client_secret": "App Secret", "grant_type": "authorization_code", "code": code, "redirect_uri": "http://127.0.0.1:8001/complete/weibo/", }) # '{"access_token":"2.00oneFMeMfeS0889036fBNW_B","remind_in":"15799","expires_in":15799,"uid":"5675652","isRealName":"true"}' pass #获取带有微博用户json信息的url def get_user_info(access_token): user_url = "https://api.weibo.com/2/users/show.json" uid = "5675652" get_url = user_url + "?access_token={at}&uid={uid}".format(at=access_token, uid=uid) print(get_url) if __name__ == '__main__': # get_auth_url() #通过code获取access_token # get_access_token("c53bd7b5af51ec985952a3c03de3b") #通过access_token获取用户的信息 get_user_info("2.00oneFMeMfeS0889036fBNW_B")