Web應用多賬號系統設計及微信掃碼登入實現
class WeChatAuthCallback(MyBaseHandler): """ 微信第三方認證之後,開始將此使用者在本系統沉澱下來 - 用於微信伺服器傳回code的值 - 此處要再請求獲得access_token """ async def get(self): wx_code = self.get_argument('code', '') wx_state = self.get_argument('state', '') if wx_code == '': res= ConstData.msg_forbidden dlog.debug(res) self.write(res) return dlog.debug('wx_code:%s,wx_state:%s' % (wx_code, wx_state)) access_token_res = wx_webapp.get_auth_access_token(code=wx_code, state=wx_state) user_info = wx_webapp.get_auth_user_info(auth_access_token_res=access_token_res)""":type:WeChatUser""" # 微信返回的使用者資訊串 if user_info is None: res = ConstData.msg_forbidden dlog.debug(res) self.write(res) return wechat_user = await MisWeChatUser.objects.get(openid=user_info.openid, unionid=user_info.unionid)""":type:MisWeChatUser""" # 一個Open_id下面所有的id都是靠union來區分賬號 if wechat_user is not None: user = await User.objects.get(user_id=wechat_user.user_id) assert user is not None if user.active: if await user.is_online(): await self.update_session() # 更新時間 else: await self.create_session(user) # 新增加一個session self.write('in authorized page') # self.redirect('/') # todo 重定向到登入授權後的主頁 return # 如果不存在wechat備案資訊,則需要備案wechat資訊,而且新註冊初始賬號 default_new_user_id = 'u_' + get_uuid1_key() new_wechat_user = MisWeChatUser( openid=user_info.openid, nickname=user_info.nickname, unionid=user_info.unionid, # user_id=wx_webapp.appid + '_' + user_info.unionid, # 通過微訊號登入生成的一個唯一的使用者名稱,後面可以提供修改 user_id=default_new_user_id, appid=wx_webapp.appid ) new_wechat_user.set_default_rc_tag() # rand_salt = get_rand_salt() new_user = User( user_id=default_new_user_id, # salt=rand_salt, # 防止別人md5撞庫反向破解的隨機數 # passwd=StringField() # 密碼,通過第三方登入的預設不設定 first_name=user_info.nickname, status=FieldDict.user_status_init, # 表示是可更改狀態 active=False, ) new_user.set_default_rc_tag() await new_wechat_user.save() await new_user.save() self.write('in unauthorized page') # self.redirect(URL_ROOT) # todo 匯入到未授權的頁面
相關推薦
Web應用多賬號系統設計及微信掃碼登入實現
class WeChatAuthCallback(MyBaseHandler): """ 微信第三方認證之後,開始將此使用者在本系統沉澱下來 - 用於微信伺服器傳回code的值 - 此處要再請求獲得access_token """ asy
內嵌式js微信掃碼登入及自定義樣式
關於微信掃碼登入網站的功能介紹,請閱讀官方文件【網站應用微信登入開發指南】 根據官方文件我們知道微信掃碼登入有兩種方式 一種是跳轉到一個大黑屏二維碼介面進行掃碼登入: (參見部落格:PHP實現跳轉式微信掃碼登入網站 ) 另外一種是把二維碼內嵌到頁面中,這樣可以自定
關於ysdk微信掃碼登入介面消失後黑屏的問題
問題描述:遊戲接入1.4.2版本ysdk後新增微信掃碼登入功能,然後出現k微信掃碼登入介面消失後黑屏的問題,檢視遊戲執行日誌,顯示回撥到登入成功,微信登入票據也獲取到了,然鵝,遊戲介面卻沒有返回 1.4.2版本微信掃碼登入功能,mainactivity launchmode改為
php微信開放平臺--第三方網頁微信掃碼登入(OAuth2.0)
第一、OAuth2.0 OAuth(開放授權)是一個開放標準,允許使用者讓第三方應用訪問該使用者在某一網站上儲存的私密的資源(如照片,視訊,聯絡人列表),而無需將使用者名稱和密碼提供給第三方應用。 允許使用者提供一個令牌,而不是使用者名稱和密碼來訪問他們存放在特定服務提供者的資料。每一個令牌授權一個特定的
JAVA實現第三方網站微信掃碼登入Demo
用JAVA Servlet實現的第三方網站微信掃碼登入的Demo,做這個確實很辛苦,很不容易實現,但是還是做出來了,這裡把程式碼貼一下,避免做微信登入開發的朋友們少走彎路 package com.wxlogin.common; import java.n
第三方登入:微信掃碼登入(OAuth2.0)
1、OAuth2.0 OAuth(開放授權)是一個開放標準,允許使用者讓第三方應用訪問該使用者在某一網站上儲存的私密的資源(如照片,視訊,聯絡人列表),而無需將使用者名稱和密碼提供給第三方應用。 允許使用者 提供一個令牌, 而不是使用者名稱和密碼來訪問他們存放
微信掃碼登入WebSphere釋出報錯處理
因開發時使用的是Tomcat+SunJDK1.6,程式沒問題。 在客戶使用時,釋出為WebSphere(預設為IBMJDK),客戶方使用了十臺機器,前端為負載。 最開始以為是負載問題,後來將十臺機器停止九臺,抓取日誌後發現錯誤為: java.security.NoSuc
修改微信掃碼登入,二維碼樣式
開工後的第一篇部落格,記得在去年給自己定的計劃是每月一篇部落格,看來有點沒有持之以恆,抱歉…,進入正題: 過完年來一直在趕專案進度,期間也遇到很多問題,很想把它分享出來,時間問題吧,沒有及時寫出來,今
laravel php 微信掃碼登入
參考來自 http://www.cnblogs.com/txw1958/p/scan-qrcode-login.html 自己做了微信登入 這個相當於筆記 僅供參考 微信掃碼登入需要的資料是微信開放平臺!!! 微信掃碼登入需要的資料是微信開放平臺!!! 微信掃碼登入需要的
微信開放平臺開發——網頁微信掃碼登入(OAuth2.0)
1、OAuth2.0 OAuth(開放授權)是一個開放標準,允許使用者讓第三方應用訪問該使用者在某一網站上儲存的私密的資源(如照片,視訊,聯絡人列表),而無需將使用者名稱和密碼提供給第三方應用。 允許使用者提供一個令牌,而不是使用者名稱和密碼來訪問他們存放在特定服務提供者的資料。每一個令牌授權一個特
php微信掃碼登入和公眾號登入
/** * 微信授權登入 * @param Request * @return [json] */ public function wxSignin(Request $request) { $code = $request->input('
細說pc端微信掃碼登入
最近做了一個pc端微信掃碼登入和微信付款的功能,一個比較常見的問題是在移動端使用微信掃碼操作完畢後,pc端如何實時響應的問題。這裡細說一下登入的實現流程,付款方面暫時還沒找到比較好的實現方法,只能暫時用輪詢。微信掃碼登入前端實現流程:在登入頁面引入微信官方提供的外掛,http
flask 微信掃碼登入
flask 微信掃碼登入 app和路由配置程式碼 import re import time import requests from flask import Flask, render_template, session, jsonify app = Flask(__name_
Laravel5.5結合小程式獲取使用者unionid | 網站實現微信掃碼登入
一、背景 我們目前有一個專案是有兩個終端,一個是小程式端,一個PC網頁端,而我們設計這個產品的使用者模組是直接和使用者微信賬號繫結,即同一個微信,可以訪問小程式和PC端。而這兩個終端需要一個唯一的標識來匹配使用者的身份,微信裡的使用者唯一標識也就是“unionid”(注意不
微信開放平臺----微信掃碼登入
告知:所有操作是基於域名已備案,並且具有企業級微信公眾號! 1.準備工作 1.1.註冊微信開放平臺帳號 1.2.建立應用(網站應用),填寫資料 注意: !填寫的域名與備案號必須一致.
微信掃碼登入網頁實現原理
http://justcoding.iteye.com/blog/2213661 掃碼登入操作過程 手機登入微信,利用“掃一掃”功能掃描網頁上的二維碼手機掃描成功後,提示“登入網頁版微信”;網頁上顯示“成功掃描 請在手機點選確認以登入”手機端點選“登入網頁版微信”,網
SpringBoot實現微信掃碼登入功能讓網站支援使用微信登入
此功能基於微信開放平臺。實現此功能的前提是需要有微信開放平臺帳號,並認證(需300¥)成功。 需要有公網可以訪問的域名和IP。 一、微信開放平臺認證流程 使用帳號登入後進入到帳號中心–》開發者
C#實現微信掃碼登入網站
網站、APP通過微信、微博、qq賬號來登入已經是很久以前的事了,現舉一個微信登入網站的例子:1、在open.weixin.qq.com註冊一個賬號,建立一個網站應用,開放介面每年要交300元認證費。2、在網站應用配置中設定授權回撥域為你自己的通過備案的域名。3、利用微信網站介
Swoole 的微信掃碼登入
微信應用的便捷,掃碼登入方式越來越被現在的應用所使用。它因為不用去記住密碼,只要有微訊號即可方便快捷登入。微信的開放平臺原生就有支援掃碼登入的功能,不過大部分人還是在用公眾平臺,所以掃碼登入只能自行實現。這裡基於微信公眾平臺的帶引數臨時二維碼,並且結合 Swoole 的 WebSocket 服務實現掃碼登入。
基於 Swoole 的微信掃碼登入
隨著微信的普及,掃碼登入方式越來越被現在的應用所使用。它因為不用去記住密碼,只要有微訊號即可方便快捷登入。微信的開放平臺原生就有支援掃碼登入的功能,不過大部分人還是在用公眾平臺,所以掃碼登入只能自行實現。這裡基於微信公眾平臺的帶引數臨時二維碼,並且結合 Swoole 的 WebSocket 服務實現掃碼登入