1.0.1 • Published 2 years ago

capacitor-line-login v1.0.1

Weekly downloads
-
License
MIT
Repository
github
Last release
2 years ago

capacitor-line-login

Capacitor plugin to support LINE Login

Versions

This plugin is for Capacitor 5.

Installation

npm install capacitor-line-login
npx cap sync

Web

Not supported.

Android

No further steps are required.

iOS

Update the following:

./ios/App/App/Info.plist:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>CFBundleDevelopmentRegion</key>
    <string>en</string>
    [...]
+   <key>CFBundleURLTypes</key>
+       <array>
+           <dict>
+               <key>CFBundleTypeRole</key>
+               <string>Editor</string>
+               <key>CFBundleURLSchemes</key>
+               <array>
+                   <string>line3rdp.$(PRODUCT_BUNDLE_IDENTIFIER)</string>
+               </array>
+           </dict>
+       </array>
+   <key>LSApplicationQueriesSchemes</key>
+   <array>
+       <string>lineauth2</string>
+   </array>
</dict>
</plist>

./ios/App/App/AppDelegate.swift:

import UIKit
import Capacitor
+import LineSDK
[...]
    func application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey: Any] = [:]) -> Bool {
        // Called when the app was launched with a url. Feel free to add additional processing here,
        // but if you want the App API to support tracking app url opens, make sure to keep this call
+       if LoginManager.shared.application(app, open: url) {
+           return true
+       }
        return ApplicationDelegateProxy.shared.application(app, open: url, options: options)
    }

Usage

import { LineLogin, LoginResult } from 'capacitor-line-login'
LineLogin.setup({ channelId: 'CHANNEL_ID' })
[...]
LineLogin.login()
    .then(({ code, data }: LoginResult) => {
        // ...
    })
    .catch(({ code, message }) => {
        // ...
    })

API

setup(...)

setup(options: SetupOptions) => Promise<void>
ParamType
optionsSetupOptions

login()

login() => Promise<LoginResult>

Returns: Promise<LoginResult>


logout()

logout() => Promise<Result>

Returns: Promise<Result>


getAccessToken()

getAccessToken() => Promise<GetAccessTokenResult>

Returns: Promise<GetAccessTokenResult>


refreshAccessToken()

refreshAccessToken() => Promise<GetAccessTokenResult>

Returns: Promise<GetAccessTokenResult>


verifyAccessToken()

verifyAccessToken() => Promise<Result>

Returns: Promise<Result>


Interfaces

SetupOptions

PropType
channelIdstring

LoginResult

PropType
data{ accessToken: string; estimatedExpirationTimeMillis: number; userID: string; email?: string; displayName: string; pictureUrl?: string; }

Result

PropType
code'SUCCESS' | 'CANCEL' | 'UNKNOWN_ERROR'

GetAccessTokenResult

PropType
data{ accessToken: string; estimatedExpirationTimeMillis: number; }