关于android:Android-手机登录和第三方登录

5次阅读

共计 3224 个字符,预计需要花费 9 分钟才能阅读完成。

Android 手机登录和第三方登录

一:Android 登录
Android 利用支流登录流程比照

登录形式 登录步骤 耗时
账号 + 明码 注册和登录拆散,登录时需输出账号和规定不尽相同的明码,十分繁琐 24s 以上
手机号码 + 短验 输出手机号码—期待上行短验—切换到短信利用界面记忆验证码—切回利用界面输出短信验证码—点击登录 16s 以上
一键登录 用户一键受权后,调用运营商网关进行号码认证和登录 1.5s

1. 账号,明码登录这种越来越少了
2. 短信验证码登录,当初支流的短信服务,有阿里云短信服务,MobTech(袤博) 等平台
https://www.mob.com/


3. 一键登录,成为支流的趋势
即通过挪动认证的网络认证能力,实现 APP 用户无需输出帐号密码,即可应用本机手机号码主动登录的能力。利用应用层无奈截取的网络层号码认证能力验证号码的真实性,本机号码主动校验是现有短信验证形式的优化,能打消现有短信验证模式等待时间长、操作繁琐和容易泄露的痛点。
一键登录的能力劣势
● 升高利用注册 / 登录门槛,加重用户记忆负担,进步用户体验;

● 升高对用户身份、通信行为等属性验证的繁琐步骤,助力企业欠缺危险管控零碎

● 取号成功率高达 99.9%。

● 两步实现注册登录,耗时仅需 1.5 秒。

● 节俭企业短验老本
二:第三方登录
微信登录
https://developers.weixin.qq.com/doc/oplatform/Mobile_App/WeChat_Login/Development_Guide.html
筹备:
挪动利用微信登录是基于 OAuth2.0 协定规范构建的微信 OAuth2.0 受权登录零碎。

在进行微信 OAuth2.0 受权登录接入之前,在微信开放平台注册开发者帐号,并领有一个已审核通过的挪动利用,并取得相应的 AppID 和 AppSecret,申请微信登录且通过审核后,可开始接入流程
微信登录 Android 实现
第一步: 依赖和权限

dependencies {compile 'com.tencent.mm.opensdk:wechat-sdk-android-without-mta:1.0.2'}
 
 // 权限
 <uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

第二步:接入配置
1.1AndroidManifest.xml 增加一个微信 Activity

 <!-- 微信 -->
        <activity
            android:name=".wxapi.WXEntryActivity"
            android:configChanges="orientation|keyboardHidden|screenSize"
            android:exported="true"
            android:theme="@android:style/Theme.Translucent.NoTitleBar" />

留神:在利用包名 +.wxapi 上面搁置 WXEntryActivity.java。

public class WXEntryActivity extends AppCompatActivity implements IWXAPIEventHandler {
  
    private IWXAPI api;
    private String code;

    private WXEntryActivity mContext;
    private ProgressDialog mProgressDialog;

    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {super.onCreate(savedInstanceState);
       
        api = WXAPIFactory.createWXAPI(this, Constant.WX_APPID,true);
      
        api.registerApp(Constant.WX_APPID);
        api.handleIntent(getIntent(), this);
    }



    @Override
    public void onReq(BaseReq baseReq) { }

    @Override
    protected void onNewIntent(Intent intent){super.onNewIntent(intent);
        api.handleIntent(intent, this);
    }


    @Override
    public void onResp(BaseResp baseResp) {switch (baseResp.errCode) {
            case BaseResp.ErrCode.ERR_OK:
            Toast.makeText(this, "发送胜利", Toast.LENGTH_SHORT).show();
                code = ((SendAuth.Resp) baseResp).code;
                //createProgressDialog();
                MyApp.isWX = true;
                MyApp.code = code;
                finish();
                break;
            case BaseResp.ErrCode.ERR_AUTH_DENIED:
            Toast.makeText(this, "发送被回绝", Toast.LENGTH_SHORT).show();
                finish();
                break;
            case BaseResp.ErrCode.ERR_USER_CANCEL:
            Toast.makeText(this, "发送勾销", Toast.LENGTH_SHORT).show();
                finish();
                break;
                 case BaseResp.ErrCode.ERR_UNSUPPORT:
                Toast.makeText(this, "不反对谬误", Toast.LENGTH_SHORT).show();
                break;
            default:
                Toast.makeText(this, "发送返回", Toast.LENGTH_SHORT).show();
                break;
        }
    }

    private void createProgressDialog() {
        mContext =this;
        mProgressDialog =new ProgressDialog(mContext);
        mProgressDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);
        mProgressDialog.setCancelable(false);
        mProgressDialog.setCanceledOnTouchOutside(false);
        mProgressDialog.setTitle("");
        mProgressDialog.setMessage("");
        mProgressDialog.show();}




}

AppID 是什么

public class Constant {
// 微信申请的 AppID

    public static String WX_APPID = "wx6e0a11*******";
}

https://developers.weixin.qq.com/doc/oplatform/Mobile_App/Launching_a_Mini_Program/iOS_Development_example.html

正文完
 0