ホームページ  >  記事  >  WeChat アプレット  >  WeChatアプレットの認証ログインを実装する

WeChatアプレットの認証ログインを実装する

coldplay.xixi
coldplay.xixi転載
2021-04-12 10:10:037394ブラウズ

WeChatアプレットの認証ログインを実装する

前書き: WeChat は getUserInfo インターフェイスを正式に変更したため、WeChat アプレットに入った直後に認証ウィンドウをポップアップ表示することはできなくなりました。ボタンを介してのみ認証ウィンドウをトリガーできます。

1. 実装のアイデア

ユーザーがクリックできるように WeChat 認証ログイン ページを作成します。これは、ボタン コンポーネントを通じて getUserInof インターフェイスをトリガーすることを意味します。ユーザーがWeChatアプレットに入ると、ユーザーが許可されているかどうかが判定され、許可されていない場合は、以下の「インターフェース紹介」の最初の画面が表示され、許可された操作が可能になります。

がすでに許可されている場合は、このページを直接スキップして、ホームページにアクセスしてください。

#関連する無料学習の推奨事項:

WeChat ミニ プログラム開発2. インターフェイスの概要

3. ソースコード

login.wxml

<view wx:if="{{canIUse}}">
    <view class=&#39;header&#39;>
        <image src=&#39;/images/wx_login.png&#39;></image>
    </view>
 
    <view class=&#39;content&#39;>
        <view>申请获取以下权限</view>
        <text>获得你的公开信息(昵称,头像等)</text>
    </view>
 
    <button class=&#39;bottom&#39; type=&#39;primary&#39; open-type="getUserInfo" lang="zh_CN" bindgetuserinfo="bindGetUserInfo">
        授权登录
    </button>
</view>
 
<view wx:else>请升级微信版本</view>

login.wcss

.header {
    margin: 90rpx 0 90rpx 50rpx;
    border-bottom: 1px solid #ccc;
    text-align: center;
    width: 650rpx;
    height: 300rpx;
    line-height: 450rpx;
}
 
.header image {
    width: 200rpx;
    height: 200rpx;
}
 
.content {
    margin-left: 50rpx;
    margin-bottom: 90rpx;
}
 
.content text {
    display: block;
    color: #9d9d9d;
    margin-top: 40rpx;
}
 
.bottom {
    border-radius: 80rpx;
    margin: 70rpx 50rpx;
    font-size: 35rpx;
}

login.json

{

"navigationBarTitleText": "授权登录"

}

login.js

コードの wx.request は、プロジェクトとバックグラウンド間のやり取りであり、直接削除できます。

変更する必要があるもの:

wx.switchTab インターフェイスの url 属性を入力することを忘れないでください。これは、認証が成功した後にジャンプするページのパスです。私のホームページはtarBar ページなので、ここでは

wx.switchTab を使用します。tarBar ページでない場合は、wx.navigateTo と wx.reirecTo を使用してジャンプできます。

Page({
    data: {
        //判断小程序的API,回调,参数,组件等是否在当前版本可用。
        canIUse: wx.canIUse(&#39;button.open-type.getUserInfo&#39;)
    },
    onLoad: function () {
        var that = this;
        // 查看是否授权
        wx.getSetting({
            success: function (res) {
                if (res.authSetting[&#39;scope.userInfo&#39;]) {
                    wx.getUserInfo({
                        success: function (res) {
                            //从数据库获取用户信息
                            that.queryUsreInfo();
                            //用户已经授权过
                            wx.switchTab({
                                url: &#39;&#39;
                            })
                        }
                    });
                }
            }
        })
    },
    bindGetUserInfo: function (e) {
        if (e.detail.userInfo) {
            //用户按了允许授权按钮
            var that = this;
            //插入登录的用户的相关信息到数据库
            wx.request({
                url: getApp().globalData.urlPath + &#39;hstc_interface/insert_user&#39;,
                data: {
                    openid: getApp().globalData.openid,
                    nickName: e.detail.userInfo.nickName,
                    avatarUrl: e.detail.userInfo.avatarUrl,
                    province:e.detail.userInfo.province,
                    city: e.detail.userInfo.city
                },
                header: {
                    &#39;content-type&#39;: &#39;application/json&#39;
                },
                success: function (res) {
                    //从数据库获取用户信息
                    that.queryUsreInfo();
                    console.log("插入小程序登录用户信息成功!");
                }
            });
            //授权成功后,跳转进入小程序首页
            wx.switchTab({
                url: &#39;&#39;  
            })
        } else {
            //用户按了拒绝按钮
            wx.showModal({
                title:&#39;警告&#39;,
                content:&#39;您点击了拒绝授权,将无法进入小程序,请授权之后再进入!!!&#39;,
                showCancel:false,
                confirmText:&#39;返回授权&#39;,
                success:function(res){
                    if (res.confirm) {
                        console.log(&#39;用户点击了“返回授权”&#39;)
                    } 
                }
            })
        }
    },
    //获取用户信息接口
    queryUsreInfo: function () {
        wx.request({
            url: getApp().globalData.urlPath + &#39;hstc_interface/queryByOpenid&#39;,
            data: {
                openid: getApp().globalData.openid
            },
            header: {
                &#39;content-type&#39;: &#39;application/json&#39;
            },
            success: function (res) {
                console.log(res.data);
                getApp().globalData.userInfo = res.data;
            }
        });
    },
    
})

関連無料の学習に関する推奨事項:

WeChat ミニ プログラム開発チュートリアル

以上がWeChatアプレットの認証ログインを実装するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はcsdn.netで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。