python 先後端不分離 QQ登陸,微博登陸

 

# QQ登陸和用戶中心前端

# QQ 登陸python

##### 點了QQ 按鈕--京東後臺--->login_qq_url--->用戶,帳號掃碼---->京東商城--->code---->qq---token--->qqopeniddjango

* 1. 開發帳號----- 全部第三方的東西 一律公司的
2. 建立應用--appid---appkey
3. pip install QQLoginTool
3. 點擊QQ 按鈕--v-on/@click="qq_login"-->京東商城後臺 
4. 京東商城後臺---->認證QQ----->登陸地址--qq_login_url cookie

## 1.實例化 # 2.獲取 QQ登陸網址 # 3.返回給前端 QQ_url
5. 用戶,帳號掃碼---->回調---京東商城後臺----codeapp

6. code ----->qq----token
7. Token---->qq--- openid 
8. 是否綁定 openid 和咱們本身的用戶--綁定過----首頁網站

# 1.去表 查詢 openid 是否存在
# 加密 openid
# 2.不存在---綁定頁面顯示
# 存在-- 保持登陸狀態-首頁
# 保持登陸狀態ui

9. 沒有綁定過---綁定頁面----綁定--->首頁
1. 接收參數-- mobile pwd sms_code openid
2. 校驗參數--手機號是否存在---密碼--是否正確---圖形驗證碼---短信驗證碼
3. openid+user綁定 # 解密 前端 傳入openid 在拿openid查詢user
1. user之前存在---綁定  
2. 新用user--默認建立一個用戶--綁定    #3.判斷user是否存在  不存在 新建一個  else if not user.check_password(pwd)  # 4. 無論存在不存在 都綁定openid
4. 保持登陸狀態 login
5. 重定到首頁
6. 設置cookie加密

 

##### 2. 加解密url

* 1. ```python
pip install itsdangerous
```spa

2. 導包
3. 實例化
4. 加密 dumps
5. 解密loads

 

微博其實實現方法差很少

  • 第三方發起微博受權登陸請求,微博用戶容許受權第三方應用後,微博會拉起應用或重定向到第三方網站,而且帶上受權臨時票據code參數;
  • 經過code參數加上AppID和AppSecret等,經過API換取access_token;
  • 經過access_token進行接口調用,獲取用戶基本數據資源或幫助用戶實現基本操做。
  • 獲取uid判斷用戶是否綁定

  • 微博sinaweibopy3模塊使用說明

  • 1.生成對象

  • 導包
        client = sinaweibopy3.APIClient(
            # app_key: app_key值 app_key=settings.APP_KEY, # app_secret:app_secret 值 app_secret=settings.APP_SECRET, # redirect_uri : 回調地址 redirect_uri=settings.REDIRECT_URL )

      2.生成跳轉的受權地址

login_url =client.get_authorize_url()

     3.根據code值獲取access_token和uid值

python
    result = client.request_access_token(code)
    access_token= result.access_token
    uid=result.uid


微博模型類
from django.db import models
from utils.models import BaseModel

class OAuthSinaUser(BaseModel):
    """
    Sina登陸用戶數據
    """
    user = models.ForeignKey('users.User', on_delete=models.CASCADE, verbose_name='用戶')
    uid = models.CharField(max_length=64, verbose_name='access_token', db_index=True)

    class Meta:
        db_table = 'tb_oauth_sina'
        verbose_name = 'sina登陸用戶數據'
        verbose_name_plural = verbose_name
相關文章
相關標籤/搜索