三三文章网 - 科技知识大全是专业科技新媒体网站。网站著眼于新一代科技新闻的全面及时处理报导,让网民在外面第二时间交待全球新一代的科技资讯。内容涵括AI+、互联网、IT、创业投资、核定、区块链、智能硬件等领域

网站集成微信登录_网站集成微信登录安全吗

  • 时间:
  • 浏览:0

网站集成微信登录_网站集成微信登录安全吗

大家好,今天我来为大家揭开“网站集成微信登录”的神秘面纱。为了让大家更好地理解这个问题,我将相关资料进行了整合,现在就让我们一起来探索吧。

文章目录列表:

1.怎么样使用php的laravel框架快速集成微信登录

2.网站接入微信账号登录应该怎么做?具体流程可以说一下吗?

3.网站或移动_怎样实现微信支付或微信登录功能

4.网站应用接入微信登录

5.使用微信快捷登录网站(PC版),怎样实现呢?微信现在有这样的接口吗?

6.网站如何实现微信登录界面网站如何实现微信登录界面显示

怎么样使用php的laravel框架快速集成微信登录

1. 安装php_weixin_provider

在项目下运行composer require thirdproviders/weixin,即可完成安装。安装成功后,在项目的vendor目录下应该能看到php_weixin_provider的库文件:

image

2. 配置微信登录的参数

一共有7个参数可以配置,分别是:

client_id:对应公众号创建的应用_id

client_secret:对应公众号创建的应用_id

redirect:对应微信授权成功后的回调地址

proxy_url:对应微信授权的_服务地址(其作用可阅读这篇文章了解)

device:区别是PC端微信登录还是移动端微信登录,默认值为pc,如果是移动端,可设置为空

state_cookie_name:授权链接中会包含随机的state参数,这个参数在微信回调的时候会原封不动的返回来,届时可通过验证state参数是否与授权链接中传入的参数相同,来判断请求是否有效,防止CSRF攻击。这个方案,会在授权时把state参数先存到cookie里面,所以这个参数用来_这个state参数存入的cookie名称,默认值是wx_state_cookie

state_cookie_time:_wx_state_cookie的有效时长,默认是5分钟

这七个参数有2种设置方式。

_种是把这些参数以大写的形式配置到.env配置文件里面:

image

注:1、每个配置项都是大写,且以WEIXIN_开头;2、前三个配置项与前面介绍的参数名称不完全一致,KEY对应client_id,SECRET对应client_secret,REDIRECT_URI对应redirect;3、其它的与前面介绍的参数名称一致。

第二种是把这些参数配置到config/services.php文件里面去:

image

这种方式的配置,每个配置项的名称与前面介绍的一致。

要注意的内容:

由于php_weixin_provider是基于laravel/socialite实现的,它要求必须配置client_id,client_secret和redirect,否则php_weixin_provider实例化过程就会出错;对于client_id和client_secret,我认为_配置在一个地方是没有问题的,但是对于redirect,如果_配置,不一定符合所有场景的需求,因为不是每一个用到微信登录的地方,_后的回调地址都是同一个;所以建议把redirect先配置成一个有效或无效非空的回调地址;反正在后面使用php_weixin_provider的时候还可以在调用的时候更改这个参数的值。

proxy_url如果有,也建议配置在公共的地方;

state_cookie_name和state_cookie_time由于都有默认值,基本上无需重新配置;

device可以在使用的时候再_。

所有配置参数都可以在使用的时候重新_。

3. 注册php_weixin_provider

在项目的config/_.php文件里面,找到providers配置节,把如下代码加到它的配置数组里面:

image

4. 注册第三方登录事件的_

在项目的_/Providers/EventServiceProvider.php里面加入以下代码:

image

laravel框架整体上是一种IOC跟事件驱动的思想,熟悉js就会对事件驱动非常熟悉,熟悉设计模式,就会对IOC(控制反转,也称为DI:依赖注入)比较熟悉,这个是理解第3步和第4步配置作用的关键。

5. 编写微信登录的接口

举例如下:

+_iew code

Socialite::with('weixin')会返回php_weixin_provider的实例,也就是它:

image

拿到这个实例之后,就可以采用链式的方式调用它提供的所有public方法,比如设置配置参数,setDevice等等。

6. 编写微信登录回调的接口

举例如下:

+_iew code

通过Socialite::with('weixin')拿到php_weixin_provider实例后,调用user方法,就会自动跟微信调用相关接口,并把微信的返回值封装成对象返回。如果在此过程中,有任何错误都会以异常的形式抛出,比如state参数校验失败,比如code失效等。

返回的$user对象包含的有效属性有:

image

小结:

这个方案是基于laravel/socialite实现,并发布到composer来使用的。laravel/socialite是laravel官方提供的第三方登录的模块,基于它可以很方便的集成大部分第三方_的认证,目前它官方已经提供很多第三方的登录实现:申请。

3.瓴码官网前端增加相关代码

let nowUrl=location.href;

let result=/code=(w*)&state=([0-9]*)/.exec(nowUrl);

if(result){

window.parent.postMessage(nowUrl,'*');

}

4.网站前端将微信登录二维码图标内嵌至一个p中,并显示该p

!function (a, b, c) {

function d(a) {

_ar c="default";

a.self_redirect===!0 ? c="true" : a.self_redirect===!1 && (c="false");

_ar d=b.createElement("iframe"),

e="/connect/qrconnect?_id=" + a._id + "&scope=" + a.scope + "&redirect_uri=" + a.redirect_uri + "&state=" + a.state + "&login_type=jssdk&self_redirect=" + c + '&styletype=' + (a.styletype || '') + '&sizetype=' + (a.sizetype || '') + '&bgcolor=' + (a.bgcolor || '') + '&rst=' + (a.rst || '');

e +=a.style ? "&", e +=a.href ? "&href=" + a.href : "", d.src=e, d.frameBorder="0", d.allowTransparency="true", d.scrolling="no", d.width="300px", d.height="400px";

_ar f=b.querySelector('.weChatLogin_col_weChatBouncedDiv');//微信二维码内嵌p

f.innerHTML="", f._endChild(d)

}

a.WxLogin=d

}(window, document);

c_t state=Number(new Date()).toString();//获取状态值

window.sessi_torage.setItem('state', state )//暂存状态值

c_t obj=new WxLogin({//实例化一个二维码

self_redirect: true,

id: "weChatBouncedDiv",//微信二维码图标内嵌p的id

_id: "wxfb8bf3273365770a",//应用_标识

scope: "snsapi_login",

redirect_uri: "",//回调地址

state: state ,//用于保持请求和回调的状态,授权请求后原样带回给第三方;该参数可应用于防止csrf攻击(跨站请求伪造攻击)

});

5.网站前端微信登录授权成功之后的处理

window.onmessage=function(e) {//微信登录授权成功后,官网触发该消息

let url=e.data;//e.data="/?code=xxx&state=xxx"

if(url.indexOf('?') !=-1){

url=url.substr(url.indexOf('?'))//url="?code=xxx&state=xxx"

let arr=url.substr(1).split('&');//arr=["code=xxx","state=xxx"]

arr=arr.map(item=> {

item=item.split('=')

let map=new Map()

map.set(item[0],item[1])

item=Object.fromEntries(map)

return item

})//arr=[{code:"xxx"},{state:"xxx"}]

let oldState=window.sessi_torage.getItem('state');

let newState=arr[1].state;

//

// loadingDiv.style.display='flex'

// loadingDiv.innerHTML='正在登录中...'

$this.showVessel('loadingDiv',true,()=>{//显示正在登录中

$this.sm['loading'].startModule(function () {

$this.showSubModule('loading', true, function () {

if(oldState===newState){

$this.ep.thirdLogin(0,arr[0].code,1,1,0,null,function (result) {//向云端发送第三登录事件,code是微信登录码

if (result===null) {

$this.$router.push('/')//微信登录成功,并且不要绑定手机号

} else {//微信登录成功,并且需要绑定手机号

$this.openID=result//微信用户ID

$this.showSubModule('loading', false, function () {}, function () {})

$this.showVessel('loadingDiv',false,()=>{},()=>{})//隐藏正在登录中

$this.showBindingPhone()//绑定手机号

}

},function (err) {

c_ole.log(err)

})

}

}, function () {})

}, function () {})

},()=>{})

window.onmessage=null

}

},

6.网站云端获取微信openid和access_token

function getOpenid_WX(_id,_Secret,code,successCB, errorCB){//获取微信openid和token

c_t request=require(global.nodePath + "/node_modules/request");

let url1='/sns/oauth2/access_token?_id=' + _id + '&secret=' + _Secret + '&code=' + code + '&grant_type=authorization_code';

request.get(

{

url: url1,

method: "GET",

json: true,

headers: {

"Content-type": "_lication/json",

},

},function (error, resp_e, body) {

if (resp_e.statusCode==200) {

let data=JSON.stringify(body, null, 4);//从一个对象解析出字符串,第三个参数是格式化缩进格式按照四个字符缩进

let data1=(JSON.parse(data));

let access_token=data1.access_token;

let openid=data1.openid;

successCB(access_token,openid);

}else {

errorCB(['获取微信信息失败!状态码:'+ resp_e.statusCode]);

}

}

);

}

7.微信登录和QQ登录的区别

微信登录可以内嵌网站登录页面,也可以打开微信登录授权页面,QQ登录不可以内嵌网站登录授权页面,必须打开QQ登录授权页面,如果是打开微信或QQ登录授权页面,则登录授权成功后必须关闭该页面。

微信登录回调地址可以_一级根目录或二级子目录,比如 " "或"/qqLogin", QQ登录回调地址必须_二级子目录,比如 "/qqLogin"

使用微信快捷登录网站(PC版),怎样实现呢?微信现在有这样的接口吗?

其实这个你百度一下确实很多方法来实现这种效果

扫码登录大概的思路是:微信手机客户端从网页二维码里面得到一些信息,然后发送给网页微信的服务器,网页服务器验证信息并响应。下面,我们借助火狐浏览器提供的Firebug工具看看,到底是怎么一回事儿吧!

1.每次打开微信网页版的时候,都会生成一个含有_uid的二维码,而且每次刷新后都会改变。这样可以保证一个uid只可以绑定一个账号和密码,确定登录用户的_性。可以通过手机上的UC浏览器提供的扫码功能查看二维码里面的信息,但并不会自动打开该地址。我刷新三次,扫描结果如下,其中_后面那串数字就是uid:

1)?/l/48e24d66bdbc4f

2)?/l/0787fb4fa7ad4c

3)?/l/92781a4a7f1c47

通过查看网页源码,这个页面在加载完毕时,已经把很多登录后才需要的相关资源都预先加载进来了,所以登录用户得到确认后展示用户信息的速度很快。

2.除了返回_的uid,实际上打开这个页面的时候,浏览器跟服务器还创建了一个长连接,请求uid的扫描记录。如果没有,在特定时长后(目前是27秒左右)会接到状态码408(请求超时),表示应该继续下一次请求;如果接到状态码201(服务器创建新资源成功),表示客户端扫描了该二维码。

3.当用户使用登录后的微信扫描二维码的时候,会将uid和手机微信产生的token进行绑定,并上传到服务器。这个时候,浏览器通过长轮询查询到uid扫描记录,立即得到201响应码,然后通知服务器,客户端由此也进入一个新的页面(就是那个要你点确认的按钮)。在客户端点击确认后,获得服务器授信的令牌,进行随后的信息交互过程。

结语

总的来说,微信扫码登录核心过程应该是这样的:浏览器获得一个_的、临时的uid,通过长连接等待客户端扫描带有此uid的二维码后,从长连接中获得客户端上报给服务器的帐号信息进行展示。并在客户端点击确认后,获得服务器授信的令牌,进行随后的信息交互过程。 在超时、网络断开、其他设备上登录后,此前获得的令牌或丢失、或失效,对授权过程形成有效的安全防护。

其实这个思路我自己有一个,可以通过一个认证的公众号来做扫描,不借助微信系统端口来登录!

登录页面需要生成一个随机不重复的KEY,保存到二维码的链接里面,然后像服务器请求把KEY存到数据库,同时写一个每秒请求一次后端接口的轮询,查看这个KEY有没有被扫描,同时确认信息

微信公众号里面调取扫一扫接口扫描接口信息,通过微信的扫一扫接口获取到KEY的值,检测数据库有这个值,同时这个值没有失效,那么把这个值和用户openid绑定存到数据库

轮询没有超时,检测到KEY与openid绑定的话,那么获取openid的所有信息同时存入到session,接着跳转到你需要的页面,这样一个基本的扫码登录的思路就完成了

总结:首先你需要认证公众号,这个是_基础的!其次我说的这个思路虽然可以实现,但是微信有现成的,为什么不用现成的呢?

网站如何实现微信登录界面网站如何实现微信登录界面显示

如何在电脑上登录微信

下载电脑版微信,在电脑上打开微信。

微信不仅可以在手机上登录,也可以在电脑上登录。那么如何在电脑上登录微信呢?

1.双击电脑微信图标,打开电脑微信。

2、进入手机微信扫描,扫描电脑微信二维码登录电脑微信。

你也可以用下面的方法。

网页版微信扫描官方页面二维码登录网页版微信。

这种登录方式据传是微信网页版_的登录方式。也就是说,每次登录微信网页版都要用手机扫描网页上的二维码。手机客户端成为了微信网页版的登录键。

怎么给企业微信公众_设置腾讯地图功能?

给企业微信公众_设置腾讯地图功能方法如下:

1、在微信公众_登录页面,输入账号信息,进入微信公众号后台。

2、在企业微信公众号后台,左侧树形的导航中,找到设置,点击导航“设置”下的“公众号设置”。

3、在公众号设置页面,在账号详情选项下,按住鼠标滚轮向下至“所在地址”处,点击右侧的“设置”。

4、进入设置详细地理位置页面,可通过输入具体位置信息搜索所在位置,也可以在地图中选择找出企业所在位置,然后进行标记。

5、在标记位置的时候,可以将标志置于企业所在地图处,在弹出的信息中点击“设为我的位置”即可。

6、在弹出的确认对话框中,点击“确定”即可。

微信开放_怎么登录?

微信开放_登录步骤如下:

在浏览器搜索框中输入“微信开放_”,然后点击“搜索”,在搜索出来的结果中,选择完全匹配的搜索结果点击登录到我信开放_官网。输入账号和密码就可以了。

微信开放_主要面对移动应用/网站应用开发者,为其提供微信登录、分享、支付等相关权限和服务。

如何用电脑登录微信公众号?

1、打开电脑版微信,出现微信登录二维码,用手机微信扫一扫

2、进入主界面,点击左边通讯录。

3、点击公众号,就可以找到你想要的公众号。

扩展资料:

另一种方式:1、在电脑桌面上点击浏览器,搜索”微信公众_“。2、进入页面后,选择”微信公众_官网“,然后鼠标右键点击打开微信公众_官网。3、进入官网后,输入自己的账号和密码,然后点击登陆即可。4、点击登陆以后,需要用手机微信扫码进入系统后台。

京东账号怎么关联绑定微信号?

京东账号关联绑定微信号方法如下:

1、打开京东进入后,点击下方我的,选择设置的图标进入,如下图所示。

2、进入设置界面后,我们选择账户与安全的选项进入,如下图所示。

3、点击进入后,选择账号关联的选项,如下图所示。

4、在账号关联界面,点击上方微信的选项进入,如下图所示。

5、点击后会跳转到微信中,在微信中输入自己的京东账号,点击登录,如下图所示。

6、登录成功后,页面会显示账号已绑定此微信号,这时就可以使用微信登录京东,如下图所示。

微信公众号怎么在手机上进行登录和编辑文章?

微信公众号在手机上登陆编辑文章步骤如下:

1、进入微信之后,点击右上角的加号,点击添加朋友,然后选择下面的公众号搜索。

2、搜索公众_安全助手。

3、进入公众_安全助手,选择关注。

4、关注好之后会自动进入公众号的首页,底部一共有三个功能,_个是绑定查询,包括手机号,_号,微信号绑定帐号,第二个是_,可以快速新建_和查看_历史,第三个是进入首页。

5、点击首页进入到登录界面,如下,输入正确的帐号和密码(可以选择记住我方便下次登录)点击登录。

6、登录进入到首页之后,有消息,留言,_,_历史以及退出功能,在这里选择_功能。

7、点击_进入到_界面,可以选择图文消息,消息以及单纯的文字消息,输入自己需要_的消息内容,然后选择_即可。这样就解决了微信公众号在手机上进行登录和编辑文章的问题。

今天关于“网站集成微信登录”的讨论就到这里了。希望通过今天的讲解,您能对这个主题有更深入的理解。如果您有任何问题或需要进一步的信息,请随时告诉我。我将竭诚为您服务。