削除された最も簡単なプログラムと原則侵略の着陸を達成するためのスキャンコード

出典:cnblogs.com/liyasong/p/saoma.html

要件はじめに

まず、スキャンコードがログインするために導入されたものです。さて、学生のほとんどは、ソフトウェアおよびQQ淘宝網、Lynxと他の携帯電話のこのタイプが装備されています。これらのアプリの企業の開発は、それに対応するウェブサイトを持っています。ユーザーが自分のWebサイトを使用することができるようにするには、より便利で安全なログインします。これらの企業は、携帯電話の使用を提供し、スイープを使用して、サービスをログに記録することができ、一掃しました。エフェクト時に、ログインページ、次のように:

 

 

 

多くの小さなパートナーは非常に不思議な感じもありますが、ページはわずか2次元コードを示し、どのように2次元コードを掃引し、そしてそれに署名した携帯電話を知っているだろうか?登録が完了した後、ユーザーが情報をユーザーに指示することができます。また、それは本当に素晴らしいああです。

 

の原理を説明

エンドWebサーバー+

次のステップは、このサービスの詳細な実施のためです。まず、原則について何かを言う:ブラウザが要求のログイン・サーバは、2次元コードを取得し、送信するときに、ユーザーがWebログインページが開きます。

サーバが要求を受信した後、それはランダムなUUIDを生成し、キー値としてこのIDは、Redisのサーバに格納され、及び有効期限を設定し、有効期限が切れた後に、二次元コードのユーザログが再取得するためにリフレッシュする必要があります。一方、一緒にキー値と、同社の認証文字列は、2次元コードは、二次元コード(2次元コード生成の画像を生成し、インターフェースによって生成され、多くのオンラインインタフェースと既製のソースコードは、そこにあるここで説明されることはありません。)次いで、二次元コード画像とUUIDはユーザーのブラウザに一緒に戻ります。

2次元コードとUUIDを取得するには、ブラウザは、ログイン要求が成功し、1秒に1回のブラウザに送信されます。UUIDの要求は、現在のページの識別子を運びます。ここではいくつかの学生がどのようにユーザーのID情報がそれますが、一つのサーバが唯一のキー値としてのRedisのUUIDに保存された、奇妙なのだろうか?

ここでは、実際のユーザIDに関する情報が存在します、ID情報はRedisのサーバに電話で保存されています。

モバイル端末+サーバー

お使いの携帯電話を作り、オープンスイープログ:ブラウザは、2次元コード、ページに表示し、ユーザーにヒントを与えるために、二次元コードを取得することを言います。携帯電話ユーザーのうち2次元コードをスキャンするには、(また、多くのデモがあり、インターネット上の文字列、ここでは詳細に説明されていないを得るために、2次元コードスキャン機能)検証メッセージとUUIDを取得することができます。

由于手机端已经进行过了登录,在访问手机端的服务器的时候,参数中都回携带一个用户的token,手机端服务器可以从中解析到用户的userId(这里从token中取值而不是手机端直接传userid是为了安全,直接传userid可能会被截获和修改,token是加密的,被修改的风险会小很多)。

手机端将解析到的数据和用户token一起作为参数,向服务器发送验证登录请求(这里的服务器是手机服务器,手机端的服务器跟网页端服务器不是同一台服务器)。服务器收到请求后,首先对比参数中的验证信息,确定是否为用户登录请求接口。如果是,返回一个确认信息给手机端。

手机端收到返回后,将登录确认框显示给用户(防止用户误操作,同时使登录更加人性化)。用户确认是进行的登录操作后,手机再次发送请求。服务器拿到uuId和userId后,将用户的userid作为value值存入redis中以uuid作为key的键值对中。

登录成功

然后,浏览器再次发送请求的时候,浏览器端的服务器就可以得到一个用户Id,并调用登录的方法,声成一个浏览器端的token,再浏览器再次发送请求的时候,将用户信息返回给浏览器,登录成功。这里存储用户id而不是直接存储用户信息是因为,手机端的用户信息,不一定是和浏览器端的用户信息完全一致。

登录原理图如下:

 


(完)

おすすめ

転載: blog.csdn.net/qq_22167989/article/details/94592060
おすすめ